我有一些使用v-if添加和删除的vue2组件。 在某些情况下,我使用发送器中的$emit和接收器中的$on进行通信。
我一直在使用this.$root.$emit来广播自定义事件,并使用this.$root.$on处理事件。 我发现使用this.$root.$on需要在beforeDestroy中使用this.$root.$off,否则已移除的组件可能会尝试处理它,并且会出现问题。
我有两个问题:
- this.$root.$emit和this.$emit之间有什么区别?
- 如果我使用this.$on,是否也必须配对使用this.$off?或者当组件被删除时,处理程序会自动“关闭”?