2017-02-23 96 views
0

使用VueJS显示项目列表时,使用v-for指令显然很容易。使用computed属性返回html并使用v-html显示也可以实现同样的效果。Vuejs - 何时使用v-for? V-HTML?

<ul> 
    <template v-for="item in items"> 
    <li><span class=myItem">{{ item }}</span></li> 
    </template> 
</ul> 

<div v-html="compiledHtmlList"></div> 

我注意到,我使用的情况下,v-html呈现的30K左右的项目字符串列表比v-for快几秒钟。因为我是VueJS的新手,想知道是否预期性能有所差异,如果是这样,为什么?如果没有,是否有其他的理由选择其中一个呢?

+0

尝试更改列表中的一个项目并比较渲染时间(仅针对更改) – Phil

+0

我希望仅更新'v-for'会更快。我早些时候做了眼睛测试,但没有感觉到任何区别。不幸的是代码在工作电脑上;一定会更彻底地测试它。 – belinghy

回答

0

v-for加载速度较慢,但​​列表更改时速度更快。 v-html将有更快的加载时间,但加载时间将与更新时间相同。因此,如果列表是静态的,并且在呈现期间不会更改(例如可以删除的项目列表),则可以使用v-html,但如果该列表可以更改,则使用v -对于。

+0

这是有道理的。你能否进一步解释Vue在底层做了什么,使V更快地更新?它是否对dom元素进行了某种索引? – belinghy