似乎当我尝试在挂载中发出事件时,它不会被触发!因此它不会出现在devtools中
main.js
const app = new Vue({
el: '#app',
mounted() {
console.log('asd');
this.$emit("clicked", "someValue");
}
});
-
<body>
<div id="app">
<h1>vuejs</h1>
</div>
<script src="https://unpkg.com/vue@2.5.16/dist/vue.js"></script>
<script src="main.js"></script>
</body>
那是为什么?以及我该怎么办?
答案 0 :(得分:2)
它工作正常-您的console.log
输出应为正常,并且您发出的事件没有问题。
不过,在显示的代码中,您尚未设置任何要对发出的事件进行监听的操作...这是一个简单的,人为的示例,说明如何使用{{ 1}}:
this.$on
答案 1 :(得分:1)
在父级的已安装生命周期事件中添加事件处理程序时 对于在儿童的已挂载事件中发出的事件,处理程序 不会捕获孩子发出的事件,因为处理程序是 在孩子已经发出事件之后添加。基本上 事件的周期就是这样。
父代创建子代父代创建子代 显然,还有其他生命周期事件发生,但这就是 在这种情况下重要的顺序。
如果要处理在孩子中发出的事件,则需要 在孩子的挂载事件之前创建处理程序(调用$ on)。