第八章、Vue3中的组件通信方式

示例: options API演示

一、父子组件通信:

props / emit
// parent.vue
<template>
   <Foo  :msg="msg" :state="state"  @modifyMsg="modifyMsg" />
</template>
 const msg = ref('Hello World')
 const modifyMsg = (val) =>{
   console.log(val) //  父组件接受子组件传递的数据  'Hello Coder'
    msg.value = val;
 }

// child.vue: emits选项可防止组件自身根组件原生事件监听,被触发两次问题,建议申明;
export default defineComponent({
  props:['msg','state'],   // 接受父组件传递的数据
  emits:['changeMsg'],     
  setup(props,{  attrs, slots, emit, expose }) {
    const changeMsg = () =>{
       emit('modifyMsg', 'Hello Coder')  // 向父组件派发事件,并传递参数
    }  
    return { changeMsg }
   }
})
expose / ref

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值