## 组件通信
1. 父传子:父组件给子组件绑定一个属性,子组件使用props接收
2. 子传父:父组件给子组件绑定一个事件,子组件使用`$emit`去调用事件函数
3. 兄弟:所有的子组件通过同一个父组件进行数据的交换
4. .sync 伪数据双向绑定:属性修饰符,子组件使用固定语法调用`this.$emit('update:xx',val)`
5. v-model 数据双向绑定:会向子组件注入一个value属性和input事件
6.
- `$root`:获取根实例对象
- `$parent`:获取直接父组件实例对象
- `$children`:直接子组件实例集合
- `$refs`:获取子组件实例集合
7. `evenBus`中央事件池,基于new了一个vue实例对象
8. 高级用法
- `$sttrs`向后代传递了样式之外的所有属性
- `$listeners`向后代传递函数
9. 大型的数据共享:vuex
## 内置组件
## component 动态加载组件--动态加载组件
1. 这个组件必须要有一个is属性,用来加载对应的组件名称
2. 为了满足需要大量手写自定义组件的场景,实现tab选项卡
## keep-alive 缓存组件-缓存组件的状态
1. 把组件的所有被改变的状态都会存储起来
2. 组件属性:exclude 把不想被缓存的组件名字写入,该组件就不会被缓存
3. 组件属性:include 只缓存被包含的组件,其他不写入组件名字的组件则不会被缓存
## slot 插槽
1. 匿名插槽:无论组件内部被插入任何内容,都会被slot标签接收,常用语纯静态的可复用的dom结构中
2. 具名插槽:父组件使用template标签使用v-slot:name加名字,插槽组件使用slot标签的name属性接收
3. 作用域插槽:父组件在template标签使用v-slot:name='接收值'子组件在slot标签绑定属性传参