组件之间的传递数据的方式
作者:互联网
组件之间的传递数据的方式
、父子间通信:父传子
子组件内定义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中的所有组件都会拿到里面的数据
标签:vue,方式,bus,refs,间通信,组件,传递数据 来源: https://www.cnblogs.com/zjz-527/p/16257458.html