vue-router源码全解析 https://mp.weixin.qq.com/s/5-tRCJTd3K65PZSLrwVCfw
vuex源码全解析 https://mp.weixin.qq.com/s/hY2K35L11vLc0-OvUTTg0A
Router 在vue中是个什么呢? -- 就是一个插件和其他第三方插件一样。
写一个第三方插件的步骤是什么呢? -- 拿Router 为例
首先要有一个类 -- Router 类, Router 类中要有install函数。因为Vue.use(Router) 默认会初始化 插件中的install函数。可以理解为install是插件的入口。而且默认Vue会把构造函数掺入到install的函数中
例如:
// install函数 是VueRouter的入口方法, 安装插件。
/* VueRouter插件依赖vue
如果用import Vue from 'vue' 的方式引入Vue。当给这个插件打包的时候。
会把Vue一起打包到插件中去(这个插件只VueRouter)这样Vue会引入多次。
为了解决这一问题,默认会传给install方法一个Vue的 构造函数
*/
export let _Vue;
export default function install(Vue){ // Vue -- vue构造函数
// 在install中通常做的功能
_Vue = Vue;
// 核心功能
/*
混入,该方法是给所有组件添加一些属性,
所有组件只得是项目中所以的组件,不管是引用的还是自己定义的
例如:main.j