欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

同時(shí)使用 v-if 和 v-for 是不推薦的,因?yàn)檫@樣二者的優(yōu)先級(jí)不明顯。

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

<!--
 這會(huì)拋出一個(gè)錯(cuò)誤,因?yàn)閷傩?todo 此時(shí)
 沒有在該實(shí)例上定義
-->
<li v-for="todo in todos" v-if="!todo.isComplete">
  {{ todo.name }}
</li>

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

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

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

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

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

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

原因:

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

解決方案:

第一種:將 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 只能放在同一級(jí)標(biāo)簽中,使用計(jì)算屬性進(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 的報(bào)錯(cuò)。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    Vue3組件間的通信方式詳解

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

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

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

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

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

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

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

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

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

    Vue透?jìng)鰽ttributes使用解析

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

最新評(píng)論