vue子组件像父组件发送消息是用到的emit 为什么在子组件中是点击事件

是不是需要点击父组件才可以获取子组件的数据,有没有知道原理的大神可以通俗易懂的讲一下?看源码还是不能理解。

阅读 2.9k
2 个回答

父子组件之间,并不是通过点击事件进行通信的。
它们之间其实只存在一个信道,点击事件只是消息传递的一种 最直观 的方式。

比如在子组件中,可以通过最直观的点击,去触发$emit。

另外,还可以是,当子组件满足一定的条件时(比如循环结束,倒计时,定时器等的状态变化),去触发$emit。

这个涉及到组件之间的数据传递:
父组件 -> 子组件: props
调用子组件时,通过props便能知道需要传递什么值到子组件中去

子组件 -> 父组件: $emit 事件分发
什么时候传递什么值到父组件?这个没法知道,因此需要在子组件中触发事件分发,click只是其中的一种触发方式,还有change / input 甚至是watch监测都可以触发事件的向上分发

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题