gpt4 book ai didi

vue.js - 扩展 Vue.js v-on :click directive

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:06 26 4
gpt4 key购买 nike

我是 的新手.我正在尝试创建我的第一个应用程序。我想在每次点击按钮时显示一条确认消息。

例子:

<button class="btn btn-danger" v-on:click="reject(proposal)">reject</button>

我的问题是:我可以扩展 v-on:click 事件以在所有地方显示确认吗?我会创建名为 v-confirm-click 的自定义指令,它首先执行确认,然后,如果我单击“确定”,则执行单击事件。可能吗?

最佳答案

我会推荐一个组件。 Vue 中的指令通常用于直接操作 DOM。在您认为需要指令的大多数情况下,组件更好。

这是一个确认按钮组件的例子。

Vue.component("confirm-button",{
props:["onConfirm", "confirmText"],
template:`<button @click="onClick"><slot></slot></button>`,
methods:{
onClick(){
if (confirm(this.confirmText))
this.onConfirm()
}
}

})

你可以这样使用:

<confirm-button :on-confirm="confirm" confirm-text="Are you sure?">
Confirm
</confirm-button>

这是一个例子。

console.clear()

Vue.component("confirm-button", {
props: ["onConfirm", "confirmText"],
template: `<button @click="onClick"><slot></slot></button>`,
methods: {
onClick() {
if (confirm(this.confirmText))
this.onConfirm()
}
}

})

new Vue({
el: "#app",
methods: {
confirm() {
alert("Confirmed!")
}
}
})
<script src="https://unpkg.com/vue@2.2.6/dist/vue.js"></script>
<div id="app">
<confirm-button :on-confirm="confirm" confirm-text="Are you sure?">
Confirm
</confirm-button>
</div>

关于vue.js - 扩展 Vue.js v-on :click directive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45307162/

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