多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## pre 当我们`Vue.use(Router)` 的时,实际上会把`new Router`出来的router挂载到根实例上, 而子组件一旦注册到根实例上,相当于就继承了这个根实例,也就可以通过原型链找到方才 new 出来的 router ![](https://box.kancloud.cn/8ac611b91a24928e4a581478b82b7b2c_244x307.png) 顺着原型链再网上查找就是Vue的原型 ![](https://box.kancloud.cn/7d5a78513b79d950457c1843c8ae63e2_239x131.png) ## 通过Vue原型手动添加属性和方法 ``` Vue.prototype.$custom = '这是自定义的属性' ``` ## 通过use注册插件 我们需要定义一个对象,这个对象上有一个名为`install`的方法,将这个对象用`Vue.use`调用,Vue就会自动调用这个对象上的`install`方法 ``` let obj = { install: function (Vue, options) { //Vue即是Vue构造函数 console.log(Vue); console.log(options); //因为这里能拿到Vue... //,so能干很多事 //1. 添加全局方法或属性 //2. 添加厍指令 //3. 注入组件 //4. 添加实例方法 } }; Vue.use(obj,{a:'1',b:'2'}); ``` ![](https://box.kancloud.cn/d874b3d6828411c9403e472b40004813_541x148.png) - 注意use插件时传参是以payload的形式,即要传递两个参数以上时是以对象的形式