采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
对于 runtime+compile 版本:
理解基本正确,几个细节地方我提一下,在 render 过程中每一个模板节点都会生成对应的 _c,也就是执行 createElement 函数,children 拍平成一维数组就是为了建立好 tree 的数据结构,因为对于 tree 来说,每个节点的 children 就是一维数组。另外 patch 的递归过程是一个自上而下的过程,但是插入到 DOM 节点的顺序是自下而上,也就是子节点先插入,父节点后插入。
嗯嗯,谢谢老师。又仔细看了下,就是一个正常 DOM 节点对应的就是 _c,其中纯文本则是 _v,其中 _c 还会生成占位符 vnode。接下来的 patch 过程中因为占位符 vnode 无法真实挂载,因此又开始递归执行占位符 vnode 的 init 函数,生成属于该占位符 vnode 的渲染 root vnode 了,并完成它的 patch。
嗯,是的没错
登录后可查看更多问答,登录/注册
全方位讲解 Vue.js 源码,进阶高级工程师
3.0k 4
1.5k 20
1.3k 14
1.2k 12
2.2k 12