请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

mounted钩子中是否拿不到渲染后DOM的问题

黄老,我知道数据更新后,会将渲染watcher推入异步queue中。这里我可以理解渲染是异步的。

但是当首次初始化一个Vue时,初始化渲染watcher时new Watcher(vm, updateComponent),后面生成vnode,patch vnode到真实DOM,这里我没有发现有异步的情况,所以在组件mounted钩子应该可以拿到渲染后DOM。

但是我平常写代码的时候,会有碰到在mounted钩子无法拿到渲染后DOM的情况。跟上面冲突了,所以很疑惑,这是为什么,请黄老指点迷津。

正在回答

1回答

ustbhuangyi 2020-02-29 23:33:31

按现在的 Vue.js 设计在 mounted 钩子里是一定能拿到渲染的 DOM 的,除非子组件是异步渲染,你能举个反例我看看吗?

1 回复 有任何疑惑可以回复我~
  • 提问者 cyabonc #1
    我试了试最近的代码,发现确实首次渲染都是同步的,能拿到DOM。这个问题是我几年前遇到的,忘了是什么情况,导致总喜欢在`mounted`钩子中先nextTick,再写DOM相关的操作。
    
    看完课程这回必然记住了,感谢老师回答。
    回复 有任何疑惑可以回复我~ 2020-03-05 23:38:00
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信