shs*_*shs 6 event-handling vue.js vuejs2
我有使用 .vue2 添加和删除的组件v-if。在某些情况下,我在$emit发送者和$on接收者之间进行通信。
我一直在使用this.$root.$emit广播自定义事件并this.$root.$on处理事件。我发现使用this.$root.$onrequire this.$root.$off(来自beforeDestroy),否则被删除的组件可能会尝试处理它,并且会发生不好的事情。
我有两个问题:
this.$root.$emit和 和有什么区别this.$emit?this.$on,我还必须将其配对吗this.$off?或者当组件被移除时处理程序会自动“关闭”吗?
this.$root.$emit和 和有什么区别this.$emit?
this.$root获取根组件实例(通常App.vue),因此this.$root.emit从根组件发出一个事件。
this.$emit只是从当前组件发出一个事件。
- 如果我使用
this.$on,我还必须将其配对吗this.$off?或者当组件被移除时处理程序会自动“关闭”吗?
this.$off不需要。是的,当组件被销毁时,处理程序将自动被删除。