Vue.js Vue v-一次当量
有没有办法告诉Vue在用作表达式时只调用一次方法 这是我的密码:Vue.js Vue v-一次当量,vue.js,vuejs2,Vue.js,Vuejs2,有没有办法告诉Vue在用作表达式时只调用一次方法 这是我的密码: 按照现在的方式,foo()。Vue中有什么东西我可以告诉你只评估一次吗 像这样:不幸的是,这仅适用于某些事件,例如在。您可能需要考虑的是计算属性计算所有这些值并返回数组。生成的数组将由Vue缓存,并且在修改项数组(并以Vue将检测到更改的方式进行修改)之前,不会重新计算该数组 例如: Vue设置 <script> new Vue({ el: '. . .', data: {
按照现在的方式,foo()。Vue中有什么东西我可以告诉你只评估一次吗
像这样:不幸的是,这仅适用于某些事件,例如在。您可能需要考虑的是<代码>计算属性计算所有这些值并返回数组。生成的数组将由Vue缓存,并且在修改项
数组(并以Vue将检测到更改的方式进行修改)之前,不会重新计算该数组
例如:
Vue设置
<script>
new Vue({
el: '. . .',
data: {
a: {b: {c: {items: [. . .]}}}
},
methods: {
foo: function(val) {
. . .
}
},
computed: {
itemsAfterFoo: function() {
var this_vue_instance = this;
var computed_items = [];
this_vue_instance.items.forEach(function(item) {
computed_items.push(this_vue_instance.foo(item.value));
});
return computed_items;
}
}
});
</script>
新Vue({
el:“…”,
数据:{
a:{b:{c:{items:[…]}}}
},
方法:{
foo:函数(val){
. . .
}
},
计算:{
itemsAfterFoo:function(){
var this_vue_instance=this;
var计算项目=[];
此_vue_实例.items.forEach(函数(项){
computed_items.push(this_vue_instance.foo(item.value));
});
返回计算的项目;
}
}
});
模板
<div v-for="(i, index) in a.b.c.items">
<div :id="itemsAfterFoo[index]"></div>
</div>
或者类似的东西
有关计算属性的更多信息,请参见此处:为什么不在与v-for
相同的元素上添加v-once
?上述注释对静态内容完全有效(即,您的数组在任何时候都不会更改),但会导致更改不会在v-for
循环中呈现。如果你的数据永远不会被修改,考虑这个代码> V-Time/Cuth>建议,否则你会想避免使用它。我想我不清楚什么是被问到的。是否希望foo
方法对每个项目仅触发一次?还是希望foo
方法在a.b.c.items
数组更新时触发,而不是在a
属性中的任何其他内容更改时触发?作为一个框架,可组合计算属性似乎是许多Vue想要去的地方。过滤器/管道与Vue中表达式中的方法存在相同的问题,它会在每次模型更新时求值???我必须承认,computed属性是JS中非常聪明的一部分(getter/setters/dependency tracker)。只是我必须以一种相反的方式来解释它。