2--仿vue 手写一个Router--主要说hash模式,组件渲染也是只说router-view

本文深入探讨了如何手动实现Vue Router的Hash模式,特别关注router-view组件的实现。在install.js中注册全局组件后,router-view即可使用。在讲解routerView.js的关键代码时,作者解释了$vnode的概念,并通过示例说明了如localhost:8080/#/a/b/c这样的URL如何工作。此外,提供了代码示例的百度网盘链接。
摘要由CSDN通过智能技术生成

上文说到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的父组件
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值