vm.$el = patch返回值

来源:3-5 patch(下)

慕斯4295428

2020-05-20

vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */)

这句是把当前组件patch的返回值赋值给vm.KaTeX parse error: Expected 'EOF', got ',' at position 3: el,̲ 但是每个组件实例的el不应该都存储的是跟节点吗(div#app),看代码意思是每个组件实例的$el都是自己的根节点

写回答

2回答

ustbhuangyi

2020-05-20

vm.$el 对应的就是组件渲染的子树 vnode 对应的 dom 节点,也就是你说的组件内的根节点,他是在 patch 最后返回的。//img.mukewang.com/szimg/5ec4fd4209951a8e07400100.jpg
如果你是问根组件,是外部传入的。

//img.mukewang.com/szimg/5ec4febc099c26ee11780458.jpg

0
1
慕斯4295428
非常感谢!
2020-05-20
共1条回复

慕斯4295428

提问者

2020-05-20

vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */)

如上代码子组件实例的$el是当前组件内的跟节点(div.hello),但是vm.$el取得值应该是root节点(div#app),是在哪步做的操作啊?

0
0

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4990 学习 · 1038 问题

查看课程