采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
router-view作用是将自己替换为路径映射的组件,在每个router-view的render函数内都有data.routerView,App组件内是有router-view组件的,那为什么在首先渲染App时depth不会++了
最外层的 router-view depth 就是 0,当然不会 ++ 了。仔细看 ++ 满足的条件
忘了是个函数组件了
是因为使用的是parent.$createElement,使用parent的上下文渲染,最后渲染对应组件时,即使当前的router-view在parent内,也是查找对应vue组件parent内是都有routerView属性么?
parent.$vnode.data.routerView 为 true,说明这个组件是 <router-view> 组件渲染的,也就说明了它被一个 router-view 嵌套了,所以 depth++,另外是 while(parent) 一直往上找的过程,直到找到根组件。
登录后可查看更多问答,登录/注册
全方位讲解 Vue.js 源码,进阶高级工程师
3.0k 4
1.5k 20
1.3k 14
1.2k 12
2.2k 12