我有一个非常简单的应用程序:
<div id="show_vue">
<page-change page="bio" @click="changeThePage"></page-change>
<page-change page="health" @click="changeThePage"></page-change>
<page-change page="finance" @click="changeThePage"></page-change>
<page-change page="images" @click="changeThePage"></page-change>
</div>
Vue.component("page-change", {
template: "<button class='btn btn-success'>Button</button>",
props: ["page"]
})
var clients = new Vue({
el: '#show_vue',
data: {
currentRoute: window.location.href
},
methods: {
changeThePage: function() {
console.log("this is working")
}
}
})
…但是当我单击 <page-change></page-change>
按钮时,控制台没有记录任何内容。我知道我错过了一些简单的东西,但我没有收到任何错误。
如何让我的点击触发 changeThePage
原文由 Jeremy Thomas 发布,翻译遵循 CC BY-SA 4.0 许可协议
当你这样做:
这意味着您正在等待
page-change
组件发出click
事件。最佳解决方案(感谢@aeharding):使用 .native 事件修饰符
解决方案 1:从子组件发出点击事件:
有关信息
event
是 Vue 为原生事件传递的默认值,例如click
: DOM 事件解决方案 2:直接从父组件发出: