vue 组件通信

1.⽗传⼦: 在⼦组件的标签上定义属性 ⼦组件通过props来进⾏接受,可以通过数组的⽅式进⾏接受,也可以通过对象的⽅式来接收。对象形式的话,里面有四个参数,分别是:type限制类型,required 是否必传,使用default默认值,validator自定义校验。如果⽗组件没有传递属性,⼦组件可以default来设置默认值,如果父组件中中传的数据是对象或数组的话,子组件对象形式的default 要写成工厂函数形式。

2.⼦传⽗:⼦组件通过this.$emit("⾃定义的事件",要传给⽗组件的数据), ⽗组件通过⼦组件的标签监听⾃定义的时间,通过⽅法来接收传递的数据。

3.⾮⽗⼦组件通信 :

通过中央事件总线,我们也称之为eventBus,

在main.js中vue 的原型上挂载一个中央事件总线,Vue.prototype.$bus = new Vue(),

在兄弟组件中,第一个组件传数据用--》  this.$bus.$emit('aaa',this.num);

另一个兄弟组件获取传递的数据用 this.$bus.$on('aaa',res=>{

        console.log(res,'res')

}) 

事件监听,移除事件监听用 this.$bus.$off('aaa')

我们需要创建⼀个空的js⽂件,在这个⽂件⾥⾯创建空的vue实例,然后导出这个空的vue实例,通过实例对象调⽤.on⽅法进⾏接

收,通过emit⽅法来进⾏发送,以上就是⾮⽗⼦组件通信的⽅式。

4.获取父组件的实例:$parent

5.获取父组件中子组件的实例:$children,可用 this.$children[0]

实例指的是this;

6.vuex:

7.本地存储:

8.v-model(是父传子子传父的合体):

  使用的是v-model:value,v-on:input的事件,可以父传子,可以获取传过来的数据,也可以像父组件传递数据。

(V3中 value改为 modelvalue, input改为update)

  vue3的

 9.provide/injectprovide导入inject导出,只可以当前组件的子组件以及父组件中后代组件使用。

 10、 ref和refs通讯比如:定义一个标签,在标签上用ref定义一个属性名,获取标签用 this.$refs.属性名/this.$refs[属性名]

 11、.sync 修饰符

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值