有趣的是,我可以用vm。$ on来监听默认事件吗?为什么不可能呢?
这是我的HTML
<div id="app">
<div @click="clickListener">dsdsd</div>
</div>
这是我的剧本
let vm = new Vue({
el:"#app",
methods:{
clickListener()
{
console.log("called clickListener")
}
}
})
vm.$on('click',function(){
console.log("hello")
})
答案 0 :(得分:0)
你需要先发出一个你想要收听的事件,使用vm。$ emit()如下:
let vm = new Vue({
el:"#app",
methods:{
clickListener() {
this.$emit('eventName', 'sample-value');
}
}
})
vm.$on('eventName', function(value){
console.log(value); // 'sample-value'
});
编辑:尝试这样的事情:
const vm = new Vue({
el: '#app',
mounted() {
const app = document.getElementById('app');
app.addEventListener('click', (event) => {
this.$emit('click', event);
});
}
});
vm.$on('click', (event) => {
console.log('click', event);
});