【发布时间】:2018-10-16 16:48:25
【问题描述】:
是否有定义空事件处理程序的 Vue 约定或最佳实践?
Vue 的transition 元素包含方便但容易被忽略的appear 属性。它默认使用转换的enter 钩子,但一组单独的appear 钩子也可用。我有一个案例,:appear 在:enter 触发一个函数时应该什么都不做。如果:appear 没有绑定,Vue 会回退到:enter,所以必须有一些东西。
将条件逻辑写入enter 钩子感觉不对,但我不确定如何最好地定义钩子。以下都是可行的,但如果没有 Vue 约定,应该将其视为最佳实践?
布尔属性
<transition
appear
v-on:appear
v-on:enter="doEnter"
>
“空”属性
<transition
appear
v-on:appear=""
v-on:enter="doEnter"
>
显式无操作处理程序
<transition
appear
v-on:appear="doAppear"
v-on:enter="doEnter"
>
new Vue({
//...
methods: {
//...
doAppear: () => {}
}
});
其他一些选项可能包括内联无操作函数v-on:appear="() => {}" 或使用空对象v-on:appear="{}" 或数字v-on:appear="0" 滥用JavaScript 的“一切都是函数”性质。 false 不起作用,因为布尔不是函数,Function 不起作用,因为 Vue 看到的是字符串而不是裸原型。
【问题讨论】:
标签: javascript vue.js