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