组件之间的传递数据的方式

组件之间的传递数据的方式

、父子间通信:父传子
子组件内定义props属性,父组件通过v-bind(:)向子组件传递数据

2、父子间通信:父传子
当子组件内部没有定义props属性时,可以在父组件上用v-bind传递数据,子组件通过this.$attrs获取,获取过来是一个对象,里面包含所有父组件传递过来的数据

3、父子间通信:子传父
子组件内this.$emit(事件名,传递参数)

父组件v-on(@)监听子组件发射的事件

4、任意组件间的通信
在vue的原型上定义一个$bus,再创建一个vue实例,把vue实例赋值给$bus,通过给$bus发射事件,在任意一个组件上都能通过this.$bus.$on监听到,也可以通过this.$bus.$off取消当前事件总线的监听

Vue.prototype.$bus = new Vue()
this.$bus.$emit('itemImageLoad',data)
this.$bus.$on('itemImageLoad',data => {})

5、ref和this.$refs:父组件拿到子组件内的数据(子传父)
给一个子组件定义一个refs,之后父组件就能通过this.$refs获取这个组件

<tabbar class='btn' ref='a'/>

this.$refs.a //获取到tabbar
获取到这个组件后就可以拿到组件内部定义的数据和方法

6、vuex
在没有多少联系的组件之间传递数据,相当于一个大仓库,vue中的所有组件都会拿到里面的数据

posted @ 2022-05-11 12:20  青柠~  阅读(99)  评论(0)    收藏  举报