vue筆記 v if和v for不能在同一標籤使用

2021-10-10 06:39:02 字數 1206 閱讀 4680

在vue實際開發中,我們避免不了會使用v-for和v-if來運算元據,但是v-for和v-if同時使用時,有乙個先後執行的優先順序,v-for比v-if的優先順序更高,這就說明在v-for的每次迴圈執行中每一次都會呼叫v-if的判斷,所以不推薦v-if和v-for在同乙個標籤內同時使用

一、理解:

v-for比v-if優先,如果每一次都需要遍歷整個陣列,將會影響速度,尤其是當之需要渲染很小一部分的時候。

如果連用的話會把 v-if 給每個元素都新增一下,會造成效能問題。

一般時候把v-if放在外層,如果不符合就不去執行了。

也可以使用計算屬性computed來代替v-if

二、原理:

const vuetemplatecompiler =

require

('vue-template-compiler');

let r1 = vuetemplatecompiler.

compile

(`hello`)

;// 編譯後

with

(this))

}// 這樣會先迴圈三次,然後給每乙個元素都進行判斷,這樣效能很低

console.

log(r1.render)

;

三.解決

1>ul和li搭配使用,或者是渲染父級標籤下的子標籤,可以使用如下方法:

"state"

>

for=

"(item,id) in list"

:key=

"id"

>

<

/li>

<

/ul>

2>可以使用過濾器將v-if中的判斷轉移到vue的computed的計算屬性中,方法如下:

for=

"(item,id) in formlist"

:key=

"id"

>

<

/li>

<

/ul>

//利用vue的計算屬性,過濾掉不需要的資料,剩下需要的資料再利用v-for迴圈遍歷取出渲染

computed:)}

}

vue中v for和v if不能一起使用

vue中v for和v if不能一起使用 在同一標籤上,v for和v if不能一起使用,因為v for的優先順序大於v if 這時候可以使用computed將資料過濾掉 for item in arr key item.id v if item.isshow h3 div 將isshow為fals...

v for與v if不能同時使用

vue中v for和v if不能同時使用 我們在做列表渲染的時候有時會遇到,我們需要不展示其中的某一項,但是如果我們把v for和v if寫在一起又會出現一些錯誤,因為在vue中v for的優先順序會高於v if 而且如果每一次都需要遍歷整個陣列,將會影響速度,我們平常應該避免這樣的使用,一般我們在...

vue中v for和v if誰先被解析

最近看到乙個比較有意思的問題就是 vue中v for和v if同時在乙個標籤中,瀏覽器解析的時候會先解析v for呢還是v if。為了探明究竟,做了乙個小測試,如下 doctype html en utf 8 x ua compatible content ie edge viewport cont...