props — [父子通信]
- 传递数据类型:
- 可能是函数 — 实质子组件想给父亲传递数据
- 可能不是函数 — 实质就是父亲给子组件传递数据
- 示例:
<TodoList :todos="123" updateChecked="hander">
- 特殊情况:路由传递props
- 布尔值类型,把路由中params参数映射为组件props数据
- 对象,静态数据
- 函数,可以把路由中params|query参数映射为组件props数据
自定义事件 ($emit, $on[简写@]) — 子给父传递数据
$bus 全局事件总线 — 万能
- 组件实例的原型的原型指向的Vue.prototype
pubsub-js[发布订阅消息]— 万能
Vuex — 数据非持久化 — 万能
插槽 — 父子通信
v-model实现组件通信 — 父子数据同步
- v-model:指令,可以收集表单数据
- 注:v-model收集checkbox需要用数组收集
属性修饰符.sync,可以实现父子数据同步。
$attrs与$listeners — vue-helper — 父子组件通信
- $attrs:组件实例的属性,可以获取到父亲传递的props数据(前提子组件没有通过props接受)
- $listeners:组件实例的属性,可以获取到父亲传递自定义事件(对象形式呈现)
$children与$parent — 父子组件通信
- ref:可以在父组件内部获取子组件—实现父子通信
- $children:可以在父组件内部获取全部的子组件【返回数组】
- $parent:可以在子组件内部获取唯一的父组件【返回组件实例】