【发布时间】:2016-07-06 15:47:48
【问题描述】:
我想将我的一些 Vue.js 方法组合到一种“子方法”类中,但我似乎只能拥有单级方法。
例如,如果我想要一组纯粹处理按钮操作的方法:
new Vue({
el: '#app',
data: { },
methods: {
buttonHandlers: {
handler1: function() {
dosomething;
},
handler2: function() {
dosomething;
}
}
}
});
我希望能够使用类似的东西:
<button v-on:click="buttonHandlers.handler1">Click Me</button>
但什么也没发生。
我已经尝试通过添加括号来强制函数运行:
<button v-on:click="buttonHandlers.handler1()">Click Me</button>
但我收到此控制台错误:
未捕获的 TypeError:scope.buttonHandlers.handler1 不是函数
我设置了一个小的https://jsfiddle.net/ozx9oc4c/ 来说明我的意思。
如果有人知道在 Vue.js 的父方法下对函数进行逻辑分组的方法,而不是没有真正结构的单级方法的页面和页面,我将不胜感激。
【问题讨论】:
-
如果你有一页又一页的方法,你很可能应该构建更小的组件。您的按钮很可能应该是它自己的组件。
-
@ceejayoz 完全同意 - 在这种情况下,我实际上正在处理一个多步骤表单,并且很多方法都与验证、步骤进展、字段操作等有关,所以我会如果可能,喜欢将它们保留在单个 Vue 实例中,但分组为逻辑类;我给出的这个按钮示例是我能想到的最快的相关示例。
-
奇怪的是,2020 年 Vue 团队现在如何尝试将相关选项(方法/计算)组合在一起(组合 API),但不接受让您将相关方法组合在一起的东西
标签: javascript methods vue.js namespaces nested