## 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的形式,即要传递两个参数以上时是以对象的形式
- 空白目录
- vue-cli
- runtime-only
- Vue对比React
- 组件与实例
- data-binding
- computed的set和get
- scoped
- 事件
- 自定义指令
- 插件
- keep-alive
- $nextTick与生命周期
- 路由
- Vue.use(Router)
- this.$router编程式导航
- this.$route
- new Router
- routes
- mode
- linkClass
- scrollBehavior
- query
- fallback
- base
- router-view
- router-link
- 路由守卫
- 左右切换
- 滚动
- FAQ
- vuex
- 适用
- new Vuex.Store
- state
- mutations
- getters
- actions
- strict
- plugins
- modules
- namespace
- this.$store
- commit
- dispatch
- mapXX
- eventBus
- Vue工程相关
- 引用路径的简化
- css-module
- vue-loader
- 异步加载
- 支持jsx
- 让webpack支持对vuex的热替换
- .eslintrc