gpt4 book ai didi

javascript - Vue.js:简单的点击功能不触发

转载 作者:数据小太阳 更新时间:2023-10-29 04:56:53 26 4
gpt4 key购买 nike

我有一个非常简单的应用程序:

<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

最佳答案

当你这样做时:

<page-change page="bio" @click="changeThePage"></page-change>

这意味着您正在等待 page-change 组件发出 click 事件。

最佳解决方案(感谢@aeharding):使用 .native 事件修饰符

<page-change page="bio" @click.native="changeThePage"></page-change>

解决方案 1:从子组件发出点击事件:

Vue.component("page-change", {
template: "<button @click='clicked' class='btn btn-success'>Button</button>",
props: ["page"],
methods: {
clicked: function(event) {
this.$emit('click', this.page, event);
}
}
})

有关信息,event 是 Vue 为原生事件(如 click)传递的默认值:DOM event

方案二:直接从父组件发出:

Vue.component("page-change", {
template: "<button class='btn btn-success'>Button {{ page }}</button>",
props: ["page"]
})

var clients = new Vue({
el: '#show_vue',
data: {
currentRoute: window.location.href,
pages: [
'bio', 'health',
'finance', 'images'
]
},
methods: {
changeThePage: function(page, index) {
console.log("this is working. Page:", page, '. Index:', index)
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.5/vue.js"></script>
<div id="show_vue">

<span v-for="(page, index) in pages" :key="index+page"
@click="changeThePage(page, index)">

<page-change :page="page"></page-change>

</span>

</div>

关于javascript - Vue.js:简单的点击功能不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43242322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com