VUE3.0-列表渲染

我们可以使用 v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法,

其中 items 是源数据的数组,而 item 是迭代项的别名

javascript 复制代码
<template>
  <h3>列表渲染</h3>
<p v-for="item in names">{{ item }}</p>
</template>

<script>
export default {
    data() {
        return{
            names:[
                '李德华','张学友','周杰伦','林俊杰'
            ]
        }
    }
} 

</script>

复杂数据

大多数情况,我们渲染的数据源来源于网络请求,也就是 JSON 格式

javascript 复制代码
<template>
  <h3>列表渲染</h3>
    <div v-for="item in result">
    <p>{{ item.title }}</p>
    <img :src="item.avator" alt="">
</div>
</template>

<script>
export default {
    data() {
        return{
            result:[
                {
                    "id":2261677,
                    "title": "鄂尔多斯|感受一座城市的璀璨夜景 感受一座城市,除了白日里的车水马龙,喧器繁华之",
                    "avator":"https://pic.qyer.com/avatar/002/25/77/30/200?V=1560226451",
                },
                {
                    "id":2261566,
                    "title": "成都这家洞穴暗黑风咖啡厅酷毙了!早c晚A走起>成都天气这么热。咖啡*人必",
                    "avator": "https://pic.ever.com/avatar/e11/87/89/69/zcerx-4537218313e",
                },
                {
                    "id":2261662,
                    "title":"川西新龙-措卡湖】措卡湖,意为"乱石从中的黑色海水",神秘小众 原汁原味。深",
                    "avator":"https://pic.qyer.com/avatar/009/88/48/58/200?V=1507386782",
                },
                ]
    }
} 
}
</script>

v-for 也支持使用可选的第二个参数表示当前项的位置索引

javascript 复制代码
<template>
  <h3>列表渲染</h3>
<p v-for="(name, index) in names">{{ name }}-{{ index }}</p>

</template>

<script>
export default {
    data() {
        return{
            names:['李德华','张学友','周杰伦','林俊杰'],

</script>

你也可以使用of作为分隔符来替代in,这更接近 JavaScript 的迭代器语法

javascript 复制代码
<p v-for="(name, index) of names">{{ name }}-{{ index }}</p>

v-for与对象

你也可以使用 v-for 来遍历一个对象的所有属性

javascript 复制代码
<template>
  <h3>列表渲染</h3>
    <p v-for="(value,key,index) in userInfo">{{ value }}-{{ key }}-{{ index }}</p>
</div>
</template>

<script>
export default {
    data() {
        return{
                userInfo:{
                    name:'zhansgan',
                    age:25,
                    sex:'男',
                }
    }
} 
}
</script>
相关推荐
前端Hardy3 分钟前
Pinia 比 Vuex 好用 10 倍?Vue3 状态管理终于不折磨人了!(新手复制即用)
前端·javascript·vue.js
前端Hardy11 分钟前
Vue3 的 v-model 双向绑定,90% 的人都用错了?(附 2026 最新避坑指南)
前端·javascript·vue.js
前端Hardy12 分钟前
救命!Vue3 的 Composition API,居然能让我少写 80% 冗余代码?(新手也能直接抄)
前端·javascript·vue.js
李剑一13 分钟前
前端必懂!一文搞懂 WebAssembly:Web/Electron/RN 全通用,你天天用的软件,底层都靠它
前端·webassembly
Definition25 分钟前
Claude Code 能养宠物了,体验下抽卡的感觉
前端·程序员
Daiyaosei30 分钟前
紧急安全警报:Axios npm 包被投毒事件详解与防护指南
前端·javascript·安全
We་ct35 分钟前
LeetCode 295. 数据流的中位数:双堆解法实战解析
开发语言·前端·数据结构·算法·leetcode·typescript·数据流
青槿吖38 分钟前
第一篇:Redis集群从入门到踩坑:3主3从保姆级搭建+核心原理一次性讲透|面试必看
前端·redis·后端·面试·职场和发展·bootstrap·html
美狐美颜sdk1 小时前
2026主流直播美颜sdk对比:效果、算法与成本分析
前端·人工智能·计算机视觉·美颜sdk·直播美颜sdk·第三方美颜sdk·视频美颜sdk
王霸天1 小时前
🚨 还在用 rem) 做大屏适配?用 vfit.js 一键搞定,告别改稿8版的噩梦!
前端·vue.js·数据可视化