this.$emit()问题

来源:3-6 如何用自定义事件进行vue组件通讯

林昱凌

2021-06-28

老师你好,请问如果子组件被多个父组件复用,比如说
图片描述
是不是parent1,parent2都会接收到?那我如果是只想要parent1接收到呢?

我现在想到的方法是父组件向子组件传递一个props标识,子组件emit时,拼接一下,比如说this.emit(‘handleClickemit(`handleClickemit(handleClick{this.parentId}`’,param),父组件里@handleClickparent1=" ",这样就只有对应的父组件能接收到,想问一下老师这种情况有什么比较好的做法?

写回答

1回答

双越

2021-06-29

真很简单啊。

parent1 调用 child 时传递 @handleClick 事件,parent2 调用 child 时传递 @handleClick 事件,这就解决了。

0
2
双越
回复
林昱凌
肯定是可以实现的,但坚决不建议这么做。这样就不符合设计原则了,事件都传递了,你又想不调用,那这个逻辑别人看不懂的,这样写代码会越来越乱,有 bug 也不好排查。
2021-06-29
共2条回复

前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4706 学习 · 1669 问题

查看课程