A,组件通信
首先,父子组件传值
1,props和$emit
其次,中央事件总线bus
2,$emit和$bus
3,Vuex仓库(存值到仓库,然后取值)
4,$attrs和$listeners
$attrs:包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class和 style 除外),并且可以通过 v-bind="$attrs" 传入内部组件——在创建高级别的组件时非常有用。
$listener:包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件——在创建更高层次的组件时非常有用。
//开发高阶插件/组件库时使用
5,provide和inject(跨级组件间的通信)
provide:一个对象,或返回一个对象的函数
inject:一个字符串数组,一个对象
注意:它们两个绑定并不是可响应的!!
B,组件其他
1.组件的注册方式
全局注册和局部注册,全局注册,页面都可以使用,局部注册,只能在当前页面使用。
2,组件插槽
1).首先插槽分为普通插槽、具名插槽和作用域插槽
2).具名插槽:使用name属性给slot起个名字的插槽;作用域插槽:在组件上的属性,可以在组件元素内使用
3,组件props传值
1.props可以传递数组,对象,字符串,布尔值,数字,函数等等
4.组件使用
1)引入组件路径;
2)注册组件;
3)应用组件
注意:组件可以嵌套使用,实现多重复用!!