请稍等 ...
×

采纳答案成功!

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

Router-view的渲染

router-view作用是将自己替换为路径映射的组件,在每个router-view的render函数内都有data.routerView,App组件内是有router-view组件的,那为什么在首先渲染App时depth不会++了

正在回答

1回答

ustbhuangyi 2019-06-14 10:17:35

最外层的 router-view depth 就是 0,当然不会 ++ 了。
https://img1.sycdn.imooc.com//szimg/5d0303b600018c2813780172.jpg
仔细看 ++ 满足的条件

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_飞越疯人院_1 #1
    忘了是个函数组件了
    回复 有任何疑惑可以回复我~ 2019-06-14 10:42:59
  • 提问者 qq_飞越疯人院_1 #2
    是因为使用的是parent.$createElement,使用parent的上下文渲染,最后渲染对应组件时,即使当前的router-view在parent内,也是查找对应vue组件parent内是都有routerView属性么?
    回复 有任何疑惑可以回复我~ 2019-06-14 14:58:28
  • ustbhuangyi 回复 提问者 qq_飞越疯人院_1 #3
    parent.$vnode.data.routerView 为 true,说明这个组件是 <router-view> 组件渲染的,也就说明了它被一个 router-view 嵌套了,所以 depth++,另外是 while(parent) 一直往上找的过程,直到找到根组件。
    回复 有任何疑惑可以回复我~ 2019-06-14 16:29:19
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信