上文说到router-view和router-link。这块就重点说下router-view, router-link就不说了
router-view和router-link都是全局组件,routerView的代码如下
// 这里是router-view的组件
// router-view 用函数式组件写,特点:没有this 没有状态
export default {
functional: true, // 函数式组件的标志。必须要有这个
/*
data(){ -- 函数式组件没有data这个玩应
return {}
}
*/
render(h,context){
// console.log(this) -- 函数式组件中没有this这玩应...
/*
context
可以理解为router-view的this(和正常的.vue的组件中的this类似)或者理解为就是router-view
注意!!!
为啥要写 let parent = context.parent 呢?
因为context 不可以像 context.$route 调用vue原型/实例上的属性,只能通过context.parent
找到router-view 父组件, router-view父组件就是正常的.vue的组件。
每一个.vue这种组件都是一个vue实例。这个需要特别清楚下,所以这样就可以调用vue原型/实例上的
属性
*/
let parent = context.parent;// context.parent 为 router-view的父组件