【发布时间】:2017-11-08 18:53:55
【问题描述】:
有没有办法告诉 Vue 在用作表达式时只调用一次方法?
这是我的代码:
<div v-for="i in a.b.c.items">
<div :id="foo(i.value)"></div>
</div>
现在的方式是,foo() 方法将在模型上的任何内容发生更改时执行,而不仅仅是项目。 Vue 中有什么东西我可以告诉它只评估一次吗?
像这样:<div :id.only-once="foo(i.value)"
【问题讨论】:
-
为什么不直接在与
v-for相同的元素上添加v-once? jsfiddle.net/kr2gpq9L -
上述注释对静态内容完全有效(即您的数组在任何时候都不会更改),但会导致更改不会在您的
v-for循环中呈现。如果您的数据永远不会被更改,请考虑此v-once建议,否则您将希望避免使用它。 -
我想我不清楚要问什么。您是否希望
foo方法对每个项目只触发一次?或者您是否希望在a.b.c.items数组更新时触发foo方法,而不是在a属性中的其他任何内容更改时触发?