vue:v-if和v-for哪個優先級更高,如果兩個同時,出現應該怎麼優化得到更好的性能?

1)v-for優先於v-if;在vue源碼src\compiler\codegen\index.js中
在這裏插入圖片描述
可以看出將AST轉化爲render字符串時,v-for處理在v-if前面。
在這裏插入圖片描述
2)因此如上圖,如果同時出現,每次渲染都會先執行循環再判斷if條件,無論如何循環都不可避免,這樣浪費了性能;
3)同時出現時的優化方式:在外層嵌套一層v-if判斷的template,然後再內部進行v-for循環。
在這裏插入圖片描述
那麼這時,如果不滿足v-if條件就不會執行v-for循環。
4)如果在循環內部進行if判斷,我們可以先用computed過濾出有效的展示數據,再進行渲染,如下圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章