1.1动态组件
- 挂载容器: <component :is="comName"></component>
- comName:数据中配置组件名的变量
1.2组件缓存
Vue内置的keep-alive组件 包起来要频繁切换的组件,就不会创建销毁组件
<keep-alive>
<component :is="comName"></component>
</keep-alive>
补充生命周期:
* activated - 激活
* deactivated - 失去激活状态
> 总结: keep-alive可以提高组件的性能, 内部包裹的标签不会被销毁和重新创建, 触发激活和非激活的生命周期方法
1.3组件插槽
1.3.1默认插槽
- 组件内用<slot></slot>占位
- 写的结构内容在组件标签内,会自动放到slot地方
1.3.2具名插槽
- 插槽处添加name属性
- 组件标签内部写入template标签,配置v-slot:名字,其中v-slot: 可以简化成#
1.3.3 作用域插槽
目标: 子组件里值, 在给插槽赋值时在父组件环境下使用
用法:
- 子组件中,在slot上绑定属性和变量名,把变量传到父组件中使用
- 父组件中在组件标签内通过template标签添加v-slot="自定义变量名" ,获取子组件的数据
2.自定义指令
2.1注册自定义指令
js
2.使用(v-color 后面可以传变量也可以传字符串)
<p v-color="colorStr" @click="changeColor">修改文字颜色</p>