[路飞]-vue-router源码学习

228 阅读2分钟

这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战

导读

源码的学习在于更加了解api的用途,源码中运用的算法,有哪些隐藏的机关我们没有发现。想通过日常使用api作为切入点,来阅读源码,这样,比直接看源码更容易接受。还有隐藏的一些bug,使我们的项目更加稳定。

我们这里只阅读了,router-view和router-link的组件实现和初始化的源码

几个难点:
  • router-link router-view 如果做路由嵌套的实现
  • new Router初始化的过程
  • path路径的匹配问题
阅读源码的几个要点:
  • 只看源码的主流程,不要被细节所束缚。
  • 对于不理解的源码可以临时记下,请教别人或同事, 继续读完当前部分
  • 源码下载下来可以fork一份在自己的github里,clone到本地,边阅读边写上自己的对源码的理解或重点
  • 同时也欢迎大家对源码的学习心得做一些分享,评论在文章下方。

vue-router在项目里的使用

步骤

​ 1 、使用router插件

import Router from 'vue-router'

Vue.use(Router)

源码入口一 :router安装的时候做了什么?

  • 路径 /src/install.js 微信截图_20211105220200.png

​ 2、创建router实例

export default router = new Router({...})

源码入口二: 我们看看实例创建的时候干了什么?

  • 路径 /src/index.js

微信截图_20211105220829.png ​ 3、 根组件添加实例main.js

new Vue({
    ...
    router
})

源码入口三: 我们看看选项router的作用? router选项在install里参考使用

​ 4、添加视图组件和导航组件

<router-view></router-view>
<router-link to="/">Home</router-link>

源码入口四: 我们看看router-view router-link 两个组件怎么实现的?

  • 路径src/components/ 我们主要看组件里 render方法的实现思路就行了。 router-link 和 router-view的实现逻辑 核心在render方法里。

router-link组件的源码

router-view组件的源码

结束语

如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~