2017-02-23 113 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