是否可以从 Vuejs 中安装发出?
Is it possible to emit from mounted in Vuejs?
我熟悉通过总线在事件上发送数据,这些工作很好,但现在我想发送一些东西,但我没有事件可以绑定它。
我尝试在挂载上发出它,但没有成功,如下所示:
mounted(){
bus.$emit('send-test', this.test);
},
当您在 parent 的 mounted
生命周期事件中为 中发出的事件添加事件处理程序时child 的 mounted
事件,处理程序将不会捕获 child 发出的事件,因为处理程序是在 之后添加的child 已经发出事件。基本上事件的循环是这样的。
- Parent 的创造
- Child 的创造
- Child的挂载
- Parent的挂载
显然还有其他生命周期事件发生,但在这种情况下这是重要的顺序。
如果您想处理 child 中发出的事件,您需要在 child 之前创建处理程序(调用 $on) s mounted
事件。
$nextTick也可能有用,它解决了我的一个问题,可以这样使用
async mounted() {
await this.$nextTick()
// Code that will run only after the entire view has been rendered
}
我熟悉通过总线在事件上发送数据,这些工作很好,但现在我想发送一些东西,但我没有事件可以绑定它。
我尝试在挂载上发出它,但没有成功,如下所示:
mounted(){
bus.$emit('send-test', this.test);
},
当您在 parent 的 mounted
生命周期事件中为 中发出的事件添加事件处理程序时child 的 mounted
事件,处理程序将不会捕获 child 发出的事件,因为处理程序是在 之后添加的child 已经发出事件。基本上事件的循环是这样的。
- Parent 的创造
- Child 的创造
- Child的挂载
- Parent的挂载
显然还有其他生命周期事件发生,但在这种情况下这是重要的顺序。
如果您想处理 child 中发出的事件,您需要在 child 之前创建处理程序(调用 $on) s mounted
事件。
$nextTick也可能有用,它解决了我的一个问题,可以这样使用
async mounted() {
await this.$nextTick()
// Code that will run only after the entire view has been rendered
}