vue,vue3中emit解析

emit:

父子组件的耦合纽带,子组件不能修改父组件的数据

如需要修改,通过某个信号去通知父组件更新,再传递到子组件

具体解释:父组件注册了一个函数,但是它不会自己去执行这个函数,它需要收到一个信号才会自己去执行。什么叫注册了一个函数呢?说白了,就是它在自己本身组件内部定义了一个函数,但是这个函数在没有收到 “信号的时候是不会去执行的”。
 

如果你能明白上一段的意思,那么你基本上就知道 “信号” 究竟是谁发出来的了。让我们回到子组件内部,在子组件内,我们需要去拿到父组件注册的那个函数名字。也就是showWin,来准备通知父组件。

子组件 child.vue

 点击按钮,触发函数onCloseds,函数发出信号通知父组件更新 emit("showWin",true)

<template>
  <button @click="onCloseds">请更新数据</button>
<template>

<script setup>  
    import {defineEmits} from 'vue'
    const emit  = defineEmits(['showWin'])
    const onCloseds = () => {
        emit("showWin",true)
    }
</script>

父组件parent.vue

父组件接受到信号showWin,执行函数upWin去更新数据

<template>
  <Child @showWin="upWin"></Child>
</template>

<script setup>
import Child from './Child.vue'
const upWin = ((isflag) => {
  console.log('子组件通知我更新啦!)
})
</script>

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue3,使用emit函数与Vue2的使用方式相比更加简单。在Vue3,我们可以通过在组件选项使用h函数的第二个参数来实现emit。具体来说,我们可以在组件选项的方法使用h函数的第二个参数来调用emit函数,从而触发一个自定义事件。这里的h函数是Vue3创建虚拟节点的函数。通过在方法调用emit函数并传递事件名称和需要传递的数据,即可触发自定义事件并将数据传递给父组件。这样,父组件就可以监听并处理这个自定义事件了。总之,在Vue3使用emit的方式相对简单,并且与Vue2的使用方式相比没有太大变化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Vue的发布订阅分析(Vue3使用 emit )](https://blog.csdn.net/qq_40963664/article/details/123685849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【vue3】vue3 setup如何使用emit?](https://blog.csdn.net/qq_39576711/article/details/123480701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值