Vue3中v-for的使用示例詳解
v-for
是 Vue.js 中用于在模板中遍歷數(shù)組或?qū)ο蟮闹噶?。它可以用?lái)生成一組元素,或在 DOM 中顯示列表項(xiàng)。下面是 v-for
的基本用法及一些進(jìn)階示例:
基本用法
遍歷數(shù)組
當(dāng)你有一個(gè)數(shù)組,并且希望根據(jù)數(shù)組的內(nèi)容生成一組元素時(shí),可以使用 v-for
。
<template> <ul> <li v-for="item in items" :key="item.id">{{ item.name }}</li> </ul> </template> <script setup> import { ref } from 'vue'; const items = ref([ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' }, ]); </script>
在這個(gè)示例中,v-for="item in items"
會(huì)遍歷 items
數(shù)組,為數(shù)組中的每個(gè)元素生成一個(gè) <li>
元素。item
是每次循環(huán)時(shí)當(dāng)前的數(shù)組項(xiàng)。
:key
是一個(gè)唯一的標(biāo)識(shí)符,用于幫助 Vue 識(shí)別每個(gè)列表項(xiàng)的身份,以?xún)?yōu)化渲染性能。 遍歷對(duì)象
你也可以使用 v-for
遍歷對(duì)象的鍵值對(duì):
<template> <ul> <li v-for="(value, key) in object" :key="key">{{ key }}: {{ value }}</li> </ul> </template> <script setup> import { ref } from 'vue'; const object = ref({ name: 'Vue', version: '3.2.0', framework: 'JavaScript', }); </script>
在這個(gè)示例中,v-for="(value, key) in object"
遍歷對(duì)象 object
的鍵值對(duì),其中 key
是對(duì)象的鍵,value
是對(duì)象的值。
使用索引
你可以通過(guò) v-for
的第二個(gè)參數(shù)訪問(wèn)當(dāng)前項(xiàng)的索引:
<template> <ul> <li v-for="(item, index) in items" :key="index">{{ index }}: {{ item.name }}</li> </ul> </template> <script setup> import { ref } from 'vue'; const items = ref([ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' }, ]); </script>
在這個(gè)示例中,index
是當(dāng)前項(xiàng)在數(shù)組中的索引。
嵌套 v-for
你可以在 v-for
中嵌套另一個(gè) v-for
,例如:
<template> <div> <div v-for="(group, groupName) in groups" :key="groupName"> <h3>{{ groupName }}</h3> <ul> <li v-for="item in group" :key="item.id">{{ item.name }}</li> </ul> </div> </div> </template> <script setup> import { ref } from 'vue'; const groups = ref({ Group1: [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, ], Group2: [ { id: 3, name: 'Item 3' }, { id: 4, name: 'Item 4' }, ], }); </script>
在這個(gè)示例中,v-for="(group, groupName) in groups"
遍歷對(duì)象 groups
的每個(gè)組,并且每個(gè)組中的項(xiàng)再通過(guò)另一個(gè) v-for
遍歷生成 <li>
元素。
結(jié)合計(jì)算屬性和方法
你可以結(jié)合計(jì)算屬性或方法來(lái)處理數(shù)據(jù),然后用 v-for
渲染結(jié)果。例如:
<template> <ul> <li v-for="item in filteredItems" :key="item.id">{{ item.name }}</li> </ul> </template> <script setup> import { ref, computed } from 'vue'; const items = ref([ { id: 1, name: 'Item 1', category: 'A' }, { id: 2, name: 'Item 2', category: 'B' }, { id: 3, name: 'Item 3', category: 'A' }, ]); const categoryFilter = ref('A'); const filteredItems = computed(() => { return items.value.filter(item => item.category === categoryFilter.value); }); </script>
在這個(gè)示例中,filteredItems
是一個(gè)計(jì)算屬性,它會(huì)返回符合條件的數(shù)組項(xiàng),然后通過(guò) v-for
渲染這些項(xiàng)。
總結(jié)
- 數(shù)組遍歷:
v-for="item in items"
用于遍歷數(shù)組。 - 對(duì)象遍歷:
v-for="(value, key) in object"
用于遍歷對(duì)象的鍵值對(duì)。 - 索引訪問(wèn):
v-for="(item, index) in items"
允許你訪問(wèn)當(dāng)前項(xiàng)的索引。 - 嵌套遍歷:你可以在
v-for
中嵌套另一個(gè)v-for
。 - 計(jì)算屬性和方法:結(jié)合計(jì)算屬性或方法來(lái)處理數(shù)據(jù)后渲染。
使用 v-for
可以幫助你動(dòng)態(tài)地生成和管理列表數(shù)據(jù),并根據(jù)需要進(jìn)行復(fù)雜的 DOM 操作。
到此這篇關(guān)于Vue3中v-for的使用的文章就介紹到這了,更多相關(guān)Vue3 v-for使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3?Suspense實(shí)現(xiàn)優(yōu)雅處理異步數(shù)據(jù)加載
Suspense?是?Vue?3?中用于處理異步數(shù)據(jù)加載的特性,它使得在加載異步數(shù)據(jù)時(shí)可以提供更好的用戶(hù)體驗(yàn),下面小編就來(lái)和大家詳細(xì)講講Suspense如何優(yōu)雅處理異步數(shù)據(jù)加載吧2023-10-10vite?vue3?規(guī)范化與Git?Hooks詳解
這篇文章主要介紹了vite?vue3?規(guī)范化與Git?Hooks,本文重點(diǎn)討論?git?提交規(guī)范,結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10vue2從數(shù)據(jù)變化到視圖變化之nextTick使用詳解
這篇文章主要為大家介紹了vue2從數(shù)據(jù)變化到視圖變化之nextTick使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Vue如何動(dòng)態(tài)修改el-table的某列數(shù)據(jù)
這篇文章主要介紹了Vue如何動(dòng)態(tài)修改el-table的某列數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue+elementUI實(shí)現(xiàn)動(dòng)態(tài)面包屑
這篇文章主要為大家詳細(xì)介紹了vue+elementUI實(shí)現(xiàn)動(dòng)態(tài)面包屑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Vue3 Pinia獲取全局狀態(tài)變量的實(shí)現(xiàn)方式
這篇文章主要介紹了Vue3 Pinia獲取全局狀態(tài)變量的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05Vue手寫(xiě)防抖和節(jié)流函數(shù)代碼詳解
在Vue中函數(shù)的防抖和節(jié)流不是什么新鮮話題,這篇文章主要給大家介紹了關(guān)于Vue3中防抖/節(jié)流的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02VUE使用echarts?5.0以上版本渲染器未導(dǎo)入錯(cuò)誤問(wèn)題
這篇文章主要介紹了VUE使用echarts?5.0以上版本渲染器未導(dǎo)入錯(cuò)誤問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06