一文帶你詳細(xì)了解Vue中的v-for
v-for
作用: 列表渲染,所在標(biāo)簽結(jié)構(gòu),按照數(shù)據(jù)數(shù)量,循環(huán)生成。指令寫在誰(shuí)身上,就循環(huán)創(chuàng)建誰(shuí)
1.語(yǔ)法:
v-for = "(值變量,索引變量) in 目標(biāo)結(jié)構(gòu)" :key = 索引變量
v-for = "值變量 in 目標(biāo)結(jié)構(gòu) :key = 索引變量"
目標(biāo)結(jié)構(gòu):可以是數(shù)組,對(duì)象,字符串
2.數(shù)組方法如果修改了原數(shù)據(jù)就會(huì)更新 頁(yè)面,如果沒(méi)有修改,則不會(huì),但可以重新賦值給變量讓你頁(yè)面更新
3.v-for中的key作用:在更新的時(shí)候:
- 有key,按照key比較,key設(shè)置為index:等于沒(méi)設(shè),就地復(fù)用
- 無(wú)key,就地更新
4.v-for中key
唯一不重復(fù)的字符串或者數(shù)值,數(shù)組中的id
key在使用過(guò)程中,有id用id,無(wú)id用索引
5.key的好處
可以提高更新的性能
v-set
作用:因?yàn)関ue是數(shù)據(jù)驅(qū)動(dòng)頁(yè)面的,所以修改原數(shù)組中可以使用this.arr[0]='測(cè)試'
但是,由于官方vue2特有的bug,導(dǎo)致這樣修改原數(shù)組失效,雖然數(shù)組確實(shí)改變了,但是頁(yè)面直接沒(méi)更新,如果需要這樣修改數(shù)據(jù),就需要$set
方法來(lái)修改
方法:
this.$set(修改數(shù)組,索引,‘修改的內(nèi)容')
重繪和回流
- 重繪:元素的顏色/透明度發(fā)生變化
- 回流:元素的幾何信息(寬度/位置)發(fā)生變化
- 回流是把結(jié)構(gòu)重新畫出來(lái),重繪給你上色
- 回流一定觸發(fā)重繪,但重繪不一定會(huì)引起回流
虛擬DOM
含義:本質(zhì)上是一個(gè)js對(duì)象,保存DOM關(guān)鍵信息
好處:提高DOM更新的性能,不頻繁操作真實(shí)的DOM,在內(nèi)存中找到變化部分,再更新真實(shí)DOM相應(yīng)屬性或內(nèi)容(打補(bǔ)?。?/p>
computed計(jì)算屬性
語(yǔ)法:定義在computed中和data(){}并齊
事例:
computed:{ totalPrice(){//計(jì)算屬性名 set(val){ //在計(jì)算機(jī)屬性被修改時(shí)執(zhí)行 //val是計(jì)算屬性賦的值 } get(){ //get在計(jì)算機(jī)屬性被調(diào)用(訪問(wèn))時(shí)執(zhí)行 //必須return一個(gè)結(jié)果 } return this.count*this*this.price//返回運(yùn)算結(jié)果 } }
緩存:計(jì)算屬性,基于依賴項(xiàng)的值進(jìn)行緩存,依賴的變量不變,都直接從緩存取結(jié)果(帶緩存)
總結(jié)
到此這篇關(guān)于Vue中v-for的文章就介紹到這了,更多相關(guān)Vue的v-for內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue實(shí)現(xiàn)拖放排序功能的實(shí)例代碼
本文通過(guò)實(shí)例代碼給大家介紹了Vue中實(shí)現(xiàn)拖放排序功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07vue-router路由懶加載及實(shí)現(xiàn)的3種方式
這篇文章主要給大家介紹了關(guān)于vue-router路由懶加載及實(shí)現(xiàn)的3種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02一文搞懂Vue3中的異步組件defineAsyncComponentAPI的用法
這篇文章主要介紹了一文搞懂Vue3中的異步組件,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07基于Vue3實(shí)現(xiàn)前端埋點(diǎn)上報(bào)插件并打包發(fā)布到npm的詳細(xì)過(guò)程
這篇文章主要介紹了基于Vue3實(shí)現(xiàn)一個(gè)前端埋點(diǎn)上報(bào)插件并打包發(fā)布到npm,本項(xiàng)目采用pnpm進(jìn)行Monorepo環(huán)境搭建,因?yàn)槲磥?lái)這個(gè)項(xiàng)目可能會(huì)加入更多的工具包,需要的朋友可以參考下2022-10-10Vue實(shí)現(xiàn)面包屑導(dǎo)航的正確方式
面包屑導(dǎo)航(BreadcrumbNavigation)這個(gè)概念來(lái)自童話故事“漢賽爾和格萊特”,它的作用是告訴訪問(wèn)者他們?cè)诰W(wǎng)站中的位置以及如何返回,本文為大家介紹了實(shí)現(xiàn)面包屑導(dǎo)航的正確方式,需要的可以參考一下2023-06-06使用vue-touch報(bào)priority錯(cuò)誤的解決
這篇文章主要介紹了使用vue-touch報(bào)priority錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03vue.js 雙層嵌套for遍歷的方法詳解, 類似php foreach()
今天小編就為大家分享一篇vue.js 雙層嵌套for遍歷的方法詳解, 類似php foreach(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09npm?install安裝報(bào)錯(cuò)的幾種常見情況
當(dāng)你跑起一個(gè)項(xiàng)目的時(shí)候,第一步需要先安裝依賴npm install,下面這篇文章主要給大家介紹了關(guān)于npm?install安裝報(bào)錯(cuò)的幾種常見情況,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07