第一种:props
适用对象:父子组件通信
注意事项:
①如果父组件给子组件传递数据(函数),本质其实是子组件给父组件传递数据
②如果父组件给子组件传递数据(非函数),本质是父组件给子组件传递数据
书写方式:3种
['todos'] {type:Array} {type:Array,default:[ ]}
小提示:路由的props 书写形式:布尔值,对象、函数形式
第二种:自定义事件
适用于场景:子组件给父组件传递参数
$on 与 $emit
//父组件
<template>
<Event @click='handler'></Event> //event的自定义事件 , 自定义事件click
</template>
<script>
import Event1 from './Event.vue'
export default{
components:{Event1}
methods:{
handler(params){
console.log('event的自定义事件',params)
}
}
}
</script>
//子组件 Event
<button @click='$emit('click','自定义事件click')'>自定义Click事件</button>
第三种:全局事件总线$bus
适用场景:万能
Vue.prototype.$bus=this
第四种:pubsub-js
在React框架种使用比较多(发布与订阅)
适用场景:万能
第五种:Vuex
适用场景:万能
第六种:插槽
适用场景:父子组件通信---(一般结构)
默认插槽、具名插槽、作用域插槽