vue.js之为什么不能使用 v-on 简写来绑定(bind) "on"
熊孩纸
阅读:225
2024-12-31 21:38:35
评论:0
文档 say
<a @click="doSomething"> ... </a>
是
的简写<a v-on:click="doSomething"> ... </a>
为什么这个简写不是在所有情况下都有效?例如,
<v-dialog v-model="dialog" width="500">
<template v-slot:activator="{ on }">
<v-btn dark v-on="on">Working button</v-btn>
<v-spacer />
<v-btn dark @on="on">Non-working button</v-btn>
</template>
<v-card>
<v-card-title>Some Dialog</v-card-title>
<v-card-text>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</v-card-text>
</v-card>
</v-dialog>
“工作按钮”有效,但“非工作按钮”无效。 v-on
简写似乎只适用于事件。但如果这是真的,我还没有看到它的记录。
我在这个例子中使用的是 Vuetify,但我的问题是关于 Vue.js 的。
请您参考如下方法:
v-on:click
简写是 @click
而不是 @on
因此您可以使用 @click
而不是 v-on="on"
。但是这里的 slotProp on
是一个具有 click
(函数)属性的对象。所以你可以像下面这样使用它
<v-btn dark @click="on.click">Now working button</v-btn>
但建议使用v-on="on"
,因为on
对象下可能有多个属性
例如:如果 on
是 { click: fn(), mouseup: fn() }
<v-btn dark @click="on.click" @mouseup="on.mouseup" >Now working button</v-btn>
<!-- same as -->
<v-btn dark v-on="on">Now working button</v-btn>
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。