成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

vue中v-if和v-for的區(qū)別是什么

v-if和v-for的區(qū)別:1、作用不同,v-if指令用于條件性地渲染一塊內(nèi)容,這塊內(nèi)容只會(huì)在指令的表達(dá)式返回 true值的時(shí)候被渲染;而v-for指令基于一個(gè)數(shù)組來渲染一個(gè)列表。2、優(yōu)先級(jí)不同,v-for優(yōu)先級(jí)比v-if高,在進(jìn)行if判斷的時(shí)候v-for是比v-if先進(jìn)行判斷的。

vue中v-if和v-for的區(qū)別是什么

本教程操作環(huán)境:windows7系統(tǒng)、vue3版,DELL G3電腦。

首先在官方文檔中明確指出v-for和v-if不建議一起使用。

一、v-if和v-for的作用

v-if 指令用于條件性地渲染一塊內(nèi)容。這塊內(nèi)容只會(huì)在指令的表達(dá)式返回 true值的時(shí)候被渲染

v-for 指令基于一個(gè)數(shù)組來渲染一個(gè)列表。v-for 指令需要使用 item in items 形式的特殊語法,其中 items 是源數(shù)據(jù)數(shù)組或者對(duì)象,而 item 則是被迭代的數(shù)組元素的別名。

在 v-for 的時(shí)候,建議設(shè)置key值,并且保證每個(gè)key值是獨(dú)一無二的,這便于diff算法進(jìn)行優(yōu)化。

兩者在用法上區(qū)別如下:

<div v-if="isShow" >123</div>    <li v-for="item in items" :key="item.id">   {{ item.label }} </li>
登錄后復(fù)制

二、兩者的優(yōu)先級(jí)

在使用中,v-for優(yōu)先級(jí)比v-if高

v-if與v-for都是vue模板系統(tǒng)中的指令

在vue模板編譯的時(shí)候,會(huì)將指令系統(tǒng)轉(zhuǎn)化成可執(zhí)行的render函數(shù)

示例
編寫一個(gè)p標(biāo)簽,同時(shí)使用v-if與 v-for

<div id="app">   <p v-if="isShow" v-for="item in items">     {{ item.title }}   </p> </div>
登錄后復(fù)制

創(chuàng)建vue實(shí)例,存放isShow與items數(shù)據(jù)

const app = new Vue({  el: "#app",  data() {   return {    items: [     { title: "foo" },     { title: "baz" }]   }  },  computed: {   isShow() {    return this.items && this.items.length > 0   }  } })
登錄后復(fù)制

模板指令的代碼都會(huì)生成在render函數(shù)中,通過app.$options.render就能得到渲染函數(shù)

? anonymous() {  with (this) { return   _c('div', { attrs: { "id": "app" } },    _l((items), function (item) { return (isShow) ? _c('p', [_v("n" + _s(item.title) + "n")]) : _e() }), 0) } }
登錄后復(fù)制

_l是vue的列表渲染函數(shù),函數(shù)內(nèi)部都會(huì)進(jìn)行一次if判斷
初步得到結(jié)論:v-for優(yōu)先級(jí)是比v-if高

然后再將v-for與v-if置于不同標(biāo)簽

<div id="app">   <template v-if="isShow">     <p v-for="item in items">{{item.title}}</p>   </template> </div>
登錄后復(fù)制

再輸出下render函數(shù)

? anonymous() {  with(this){return   _c('div',{attrs:{"id":"app"}},   [(isShow)?[_v("n"),   _l((items),function(item){return _c('p',[_v(_s(item.title))])})]:_e()],2)} }
登錄后復(fù)制

這時(shí)候我們可以看到,v-for與v-if作用在不同標(biāo)簽時(shí)候,是先進(jìn)行判斷,再進(jìn)行列表的渲染

我們?cè)僭诓榭聪聉ue源碼
源碼位置:vue-devsrccompilercodegenindex.js

export function genElement (el: ASTElement, state: CodegenState): string {  if (el.parent) {   el.pre = el.pre || el.parent.pre  }  if (el.staticRoot && !el.staticProcessed) {   return genStatic(el, state)  } else if (el.once && !el.onceProcessed) {   return genOnce(el, state)  } else if (el.for && !el.forProcessed) {   return genFor(el, state)  } else if (el.if && !el.ifProcessed) {   return genIf(el, state)  } else if (el.tag === 'template' && !el.slotTarget && !state.pre) {   return genChildren(el, state) || 'void 0'  } else if (el.tag === 'slot') {   return genSlot(el, state)  } else {   // component or element   ... }
登錄后復(fù)制

在進(jìn)行if判斷的時(shí)候,v-for是比v-if先進(jìn)行判斷

最終判斷結(jié)果是v-for的優(yōu)先級(jí)高于v-if的

三、注意事項(xiàng)

永遠(yuǎn)不要把 v-if 和 v-for 同時(shí)用在同一個(gè)元素上,帶來性能方面的浪費(fèi)(每次渲染都會(huì)先循環(huán)再進(jìn)行條件判斷)

如果避免出現(xiàn)這種情況,則在外層嵌套template(頁面渲染不生成dom節(jié)點(diǎn)),在這一層進(jìn)行v-if判斷,然后在內(nèi)部進(jìn)行v-for循環(huán)

<template v-if="isShow">   <p v-for="item in items"> </template>
登錄后復(fù)制

如果條件出現(xiàn)在循環(huán)內(nèi)部,可通過計(jì)算屬性computed提前過濾掉那些不需要顯示的項(xiàng)

computed: {   items: function() {    return this.list.filter(function (item) {     return item.isShow    })   } }
登錄后復(fù)制

案列說明:

原因:v-for比v-if優(yōu)先級(jí)高,每一次都需要遍歷整個(gè)數(shù)組,造成不必要的計(jì)算,影響性能.

例如,使用v-for在頁面中循環(huán)100個(gè)li標(biāo)簽,但是只顯示index=97的那個(gè)li標(biāo)簽內(nèi)容,其余的全部隱藏。
即使100個(gè)list中只需要使用一個(gè)數(shù)據(jù),它也會(huì)循環(huán)整個(gè)數(shù)組。

 <ul>     <li v-for="item in list" v-if="item.actived">{{item.name}}</li>  </ul>
登錄后復(fù)制

解決:使用computed

<ul>     <li v-for="item in activeList">{{item.name}}</li> </ul>  computed: {   activeList() {     return this.list.filter(val => {       return val.actived;     });   } },
登錄后復(fù)制

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
色综合久久无码五十路人妻| 国产大屁股喷水视频在线观看| 综合色天天鬼久久鬼色| 真实的国产乱ⅩXXX66| 中文无码乱人伦中文视频在线V| 中国极品少妇XXXXX| 88国产精品视频一区二区三区| 97在线视频人妻无码| OLDGRAANNY日本老熟妇| 曰批免费视频免费无码软件| 中文精品一卡2卡3卡4卡| 97久久国产露脸精品国产| 啊灬啊灬啊灬快灬高潮了AV| 纯肉的日本动漫 在线看| 国产V片在线播放免费无码| 丰满少妇被猛烈进AV毛片| 国产精品久久久久久AV| 狠痕鲁狠狠爱2021在| 久久亚洲AV成人无码国产电影| 奶头被吃得又翘又硬| 人妻丰满熟妞AV无码区| 污的你下面一直滴水的句子| 玩弄肥美高大的熟妇| 亚洲AV综合色区无码专区桃色| 亚洲AV蜜桃无码精品无码| 亚洲日本VA午夜中文字幕一区| 777米奇色狠狠888俺也去乱| 成人欧美激情亚洲日韩蜜臀 | 女女互揉吃奶揉到高潮AV| 日日麻批免费40分钟无码| 亚洲AV无码一区二区三区天堂古| 与大屁股熟女啪啪喷水| 成人妇女免费播放久久久| 国精产品一区二区三区有限公司| 两只奶头被老头吸肿了| 色欲AV永久无码精品无码蜜桃| 亚洲AV无码专区色爱天堂老鸭| 50岁退休熟女露脸高潮| 国产成人片无码视频在线观看| 久久国产乱子伦精品免费女人| 人妻丰满被色诱中文字幕| 亚洲Aⅴ无码专区在线观看q| 最新精品国偷自产在线下载| 国产AV一区二区三区最新精品| 久久精品国产亚洲A∨麻豆| 日本边做边吃奶AⅤ视频免费| 亚洲AV日韩综合一区尤物| 99久久久无码国产精品免费| 国产精品无码无在线观看| 免费无码又爽又高潮视频 | 国产99久久久国产精品成人小说| 精品无码中文视频在线观看| 日本久久三级电影院| 亚洲女和黑人最新AV| 把女人弄爽特黄A大片| 经典日韩成人网站在线观看| 人人爽人人爽人人片AV| 亚洲乱码日产精品BD在线观看 | 欧洲乱码一卡2卡三卡4卡高清| 小BBW小BBW小BBW小| 99精品国产一区二区电影| 国产午夜无码视频在线观看| 女人被狂C到高潮视频网站| 压在窗户上C给别人看窗前| BBwBBw高潮喷水日本少妇自| 幻女BBWXXXX非洲黑人| 日本肉体XXXX裸交| 伊在人亚洲香蕉精品区| 国产乱人伦偷精品视频色欲| 欧美人与性动交Α欧美精品| 亚洲成在人线AV品善网好看| 成人全部免费的A毛片在线看| 久久久久久久久精品无码中文字幕 | 国产成人无码区免费AⅤ片| 美女裸体无遮挡免费视频网站| 无码少妇丰满熟妇一区二区| JAGNEXSMAX在日本| 久久精品人妻一区二区三区av| 天天躁日日躁狠狠躁AV麻豆| 99久久精品美女高潮喷水| 精品无人区卡一卡二卡三乱码| 试看20分钟做受| 99精品国产99久久久久久97| 精品人妻人人做人人爽夜夜爽| 天堂√最新版中文在线| MD豆传媒APP网址入口免费| 久久久久久精品一区二区三区日本| 天天天狠天天碰天天爱| JAPONENSIS性护士| 开心久久婷婷综合中文字幕| 亚洲AV无码国产精品色午| 丰满多毛的大隂户毛茸茸| 欧美喷潮久久久XXXXX| 伊人久久大香线蕉AV不变影院| 国内大量揄拍人妻精品視頻| 十八禁午夜私人在线观看影院| GRANSREMEDY老太太| 秘书在办公室被躁BD在线观看 | 国产真实伦在线观看| 日韩精品乱码AV一区二区| 2019理论韩国理论中文| 久久久久久精品精品免费| 亚洲AV日韩综合一区尤物| 国产成人综合久久精品免费| 日本高清视频WWW| 97色精品视频在线观看| 久久婷婷国产剧情内射白浆| 亚洲成AV人片一区二区密柚| 国产毛多水多高潮高清| 天天天狠天天碰天天爱| 多毛freeoprn熟妇多毛y| 日本JAPANESE 办公室丝| AⅤ一区二区三区无卡无码| 兰州熟妇高潮露脸| 一本色道久久综合一| 精品少妇爆乳无码av专用区| 亚洲AV无码专区在线电影成| 国产精品爽爽ⅴa在线观看| 婷婷五月综合激情| 国产成人精品无码一区二区| 色婷婷亚洲婷婷七月中文字幕| YW尤物AV无码点击进入福利| 欧美肥妇BWBWBWBXX| 97色精品视频在线观看| 欧美成本人网站免费观看| 97大学生情侣真实露脸在线| 男人扒开添女人下部免费视频| 中文字幕一区二区三区日韩精品| 撩起老师旗袍挺进去玉足| 中国人も日本人も汉字を| 旧里番美熟妇1一2集| 制服丝袜自拍另类第1页| 亂倫近親相姦中文字幕| 最新国产成人AB网站| 男生晚上睡不着想看B站 | 亚洲精品成人区在线观看| 狠狠色狠狠色综合| 亚洲精品久久久久久中文字幕| 精品国产乱码久久久久软件 | 熟女高潮精品一区二区三区| 国产AVXXXX无套内射| 无遮挡啪啪摇乳动态图GIF| 国产日产欧产精品精品AI| 亚洲AV无码国产精品夜色午夜| 狠狠躁日日躁夜夜躁2020| 亚洲日韩中文字幕无码一区| 久久天天躁狠狠躁夜夜2020| 中国CHINESE壮男GⅤ军警| 女被啪到高潮的GIF动态图无遮 | 欧美喷潮久久久XXXXX| 差差漫画网页登录页面弹窗 | 成年AV免费网址大全超清| 少妇被躁C至高潮HD| 国产乱人伦精品一区二区| 亚洲а∨天堂男人色无码蜜臀69| 狠狠色噜噜狠狠狠狠色综合久AV | 无码国产成人午夜电影在线观看| 国产女人高潮抽搐喷水嗷嗷叫| 亚洲高清乱码午夜电影网| 久久天天躁夜夜躁狠狠躁2014| 91精品人妻一区二区三区蜜桃 | 播放灌醉水嫩大学生国内精品| 色欲av成人蜜臀av不卡| 国产乱码卡二卡三卡43| 亚洲欧洲中文日韩乱码AV| 麻豆国内剧情AV在线素人搭讪| а天堂中文在线官网| 婷婷国产成人精品视频| 好男人2019在线视频播放观看| 一本大道一卡2卡三卡4卡国产| 女女互揉吃奶揉到高潮AV| 丰满熟妇BBWBBWBBWBB| 亚洲AV综合色区无码专区桃色| 麻花传媒MD0076沈芯语在线| 不卡高清AV手机在线观看| 小BBW小BBW小BBW小| 久久夜色精品国产噜噜噜亚洲AV| T66Y地址一地址二满18周岁| 无码人妻精品一区二区三区免费看| 精品久久免费一区二区三区四区| 18日韩xxxx| 天天摸夜夜添夜夜无码| 精品国产一区二区三区噜噜噜| 99久久精品国产免费看| 无码AV免费毛片一区二区| 久久久一本精品99久久精品 | 尤物193在线人妻精品免费| 日本老妇XXXXX免费| 国产一区二三区好的精华液| 在线A级毛片免费视频| 色综合视频一区二区三区44| 精东传媒一二三区进站口| AV无码国产在线看免费网站| 无码人妻出轨与黑人中文字幕| 久久久综合九色综合鬼色| 绯色AV永久无码一区二区蜜臀| 亚洲精品国偷自产在线| 日本丰满熟妇55乱偷| 精品人人妻人人爽D∨D| 成人午夜福利免费体验区|