请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

emit的用法

老师你好,关于emit的用法逻辑我还是不太理解
context.emit向父组件抛出事件:

  setup(props, context) {
    const buttonClick = () => {
      context.emit('close-modal')
    }
    return { buttonClick }
  }
})

那么父组件里为什么这么写:

<modal :isOpen="modalIsOpen" @close-modal="onModalClose">My Modal!!!</modal>

这其中的逻辑是什么?
点击子组件中的按钮,触发buttonClick事件,然后向父组件抛出close-modal事件?在父组件中,onModalClose事件就相当于close-modal?
我有些混乱,麻烦老师解答下

正在回答 回答被采纳积分+3

1回答

张轩 2023-01-03 09:57:33

同学你好

事件对于一个组件是有重要的东西,因为有了事件父组件就可以特定的时刻完成特定的操作。

回到这段代码:

<modal :isOpen="modalIsOpen" @close-modal="onModalClose">My Modal!!!</modal>
@close-modal 是事件名称,和
context.emit('close-modal') 这个是一致的。

onModalClose 是事件的回调,是父组件中定义的一个函数。这个函数执行的时候事件被触发。


3 回复 有任何疑惑可以回复我~
  • 提问者 Hania冲鸭 #1
    老师,这里我理解的是点击close按钮,触发buttonClick事件,然后向父组件抛出close-modal事件,父组件接收到子组件抛出的close-modal事件,然后去 调用onModalClose函数,是这样吗?
    回复 有任何疑惑可以回复我~ 2023-01-03 13:21:29
  • 张轩 回复 提问者 Hania冲鸭 #2
    同学你好 你的理解是正确的
    回复 有任何疑惑可以回复我~ 2023-01-04 09:51:13
  • 感觉这个格式有点儿类似于C#里的委托。。。然后放在某个事件里判断,如果有就触发。。。然后外面调用。。。
    回复 有任何疑惑可以回复我~ 2025-07-17 12:35:50
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号