亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue中v-if和v-for一起使用的弊端及解決辦法(同時使用 v-if 和 v-for不推薦)

 更新時間:2023年07月21日 09:30:28   作者:subsistent  
當(dāng) v-if 和 v-for 同時存在于一個元素上的時候,v-if 會首先被執(zhí)行,這篇文章主要介紹了vue中v-if和v-for一起使用的弊端及解決辦法,需要的朋友可以參考下

vue中v-if和v-for一起使用的弊端及解決辦法

同時使用 v-if 和 v-for 是不推薦的,因為這樣二者的優(yōu)先級不明顯。

當(dāng) v-if 和 v-for 同時存在于一個元素上的時候,v-if 會首先被執(zhí)行。這意味著 v-if 的條件將無法訪問到 v-for 作用域內(nèi)定義的變量別名:

<!--
 這會拋出一個錯誤,因為屬性 todo 此時
 沒有在該實例上定義
-->
<li v-for="todo in todos" v-if="!todo.isComplete">
  {{ todo.name }}
</li>

在外新包裝一層 <template> 再在其上使用 v-for 可以解決這個問題 (這也更加明顯易讀):

<template v-for="todo in todos">
  <li v-if="!todo.isComplete">
    {{ todo.name }}
  </li>
</template>

否則v-for比v-if優(yōu)先級高,如果遍歷的數(shù)組元素個數(shù)比較多,但是滿足v-if條件比較少的情況下,會浪費性能,建議不要使用。而且,每次刷新頁面時,都會執(zhí)行這樣性能不高的代碼。

如果v-if在v-for里面的話, 可以用計算屬性computed解決,通過數(shù)組方法filter過濾數(shù)組,v-for直接循環(huán)計算屬性的結(jié)果,就不需要使用v-if了。而且computed是有緩存的,就是在它的依賴沒有變化時,不會再執(zhí)行對應(yīng)計算屬性的函數(shù),就提高了性能。

如果v-if在v-for外層的話,可以使用<template>標(biāo)簽。

v-if和v-for不能一起使用的原因以及解決辦法

原因:

由于v-for的優(yōu)先級比v-if高,所以導(dǎo)致每循環(huán)一次就會去v-if一次,而v-if是通過創(chuàng)建和銷毀dom元素來控制元素的顯示與隱藏,所以就會不停的去創(chuàng)建和銷毀元素,造成頁面卡頓,性能下降

解決方案:

第一種:將 v-if 和 v-for 分別放在不同標(biāo)簽中

<ul v-if="active">
   <li v-for="(item, index) in list" :key="inde">
       <p>{{item.name}}</p>
   </li>
 </ul>

第二種:如果 v-if 和 v-for 只能放在同一級標(biāo)簽中,使用計算屬性進(jìn)行改造:

let title = "自定義"
 <ul v-for="(item, index) in lists(list, title)" :key="index">
   <li>{{item.name}}</li>
 </ul>
computed: {
    lists () {
      return (item, name) => {
        return item.filter(item => item.name !== name)
      }
    }
  }

以上兩種方法都可以解決 eslint 的報錯。

到此這篇關(guān)于vue中v-if和v-for一起使用的弊端及解決辦法的文章就介紹到這了,更多相關(guān)vue中v-if和v-for使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3.0 自己實現(xiàn)放大鏡效果案例講解

    Vue3.0 自己實現(xiàn)放大鏡效果案例講解

    這篇文章主要介紹了Vue3.0 自己實現(xiàn)放大鏡效果案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Vue實現(xiàn)色板功能的示例代碼

    Vue實現(xiàn)色板功能的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用Vue實現(xiàn)色板功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-06-06
  • vue3第二次傳遞數(shù)據(jù)方法無法獲取到最新的值的解決方法

    vue3第二次傳遞數(shù)據(jù)方法無法獲取到最新的值的解決方法

    這篇文章主要介紹了vue3第二次傳遞數(shù)據(jù)方法無法獲取到最新的值,本文通過實例圖文相結(jié)合給大家詳細(xì)講解,感興趣的朋友一起看看吧
    2025-04-04
  • Ant Design Vue全局對話確認(rèn)框(confirm)的回調(diào)不觸發(fā)

    Ant Design Vue全局對話確認(rèn)框(confirm)的回調(diào)不觸發(fā)

    這篇文章主要介紹了Ant Design Vue全局對話確認(rèn)框(confirm)的回調(diào)不觸發(fā)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue3組件間的通信方式詳解

    Vue3組件間的通信方式詳解

    這篇文章主要介紹了Vue3組件間的通信方式,在使用vue時,我們經(jīng)常會把不同的模塊拆分成不同的組件,而組件之間有的需要傳遞數(shù)據(jù),所以組件間的數(shù)據(jù)通信就非常重要了
    2023-04-04
  • vue3+three.js實現(xiàn)疫情可視化功能

    vue3+three.js實現(xiàn)疫情可視化功能

    這篇文章主要介紹了vue3+three.js實現(xiàn)疫情可視化,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • 記一次Vue.js混入mixin的使用(分權(quán)限管理頁面)

    記一次Vue.js混入mixin的使用(分權(quán)限管理頁面)

    這篇文章主要介紹了記一次Vue.js混入mixin的使用(分權(quán)限管理頁面),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 詳解vuejs中執(zhí)行npm run dev出現(xiàn)頁面cannot GET/問題

    詳解vuejs中執(zhí)行npm run dev出現(xiàn)頁面cannot GET/問題

    這篇文章主要介紹了詳解vuejs中執(zhí)行npm run dev出現(xiàn)頁面cannot GET/問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • vue3?自定義圖片放大器效果的示例代碼

    vue3?自定義圖片放大器效果的示例代碼

    這篇文章主要介紹了vue3?自定義圖片放大器效果,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Vue透傳Attributes使用解析

    Vue透傳Attributes使用解析

    本文主要介紹了Vue透傳Attributes使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論