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>
相关推荐
@大迁世界5 小时前
Firefox 本地模式:localhost 再见了 ?
前端·架构
米米商聊7 小时前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
echome8888 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
时间的情敌8 小时前
OpenLayers 实战|Vue3 + OpenLayers 完整工程案例(加载天地图、要素、弹窗、绘制、WFS)
前端·openlayers
陈随易8 小时前
下载神器!Motrix 停更三年后重写回归
前端·后端·程序员
前端的日常9 小时前
一个人+AI做情侣食谱小程序,0 费用的服务器
前端·后端
计算机魔术师9 小时前
谷歌搜索广告踩刹车,AI广告成为救命稻草
前端
总要学点什么9 小时前
第81篇:数据可视化-PM2.5分布——让圆点的胖瘦替每座城市报出浓度
前端·信息可视化·echarts·cesium·空间分析
IT_陈寒9 小时前
Vue的v-for里用了个临时变量,页面直接挂了
前端·人工智能·后端
hunter_0769 小时前
一次 iOS 真机签名 409 的完整排查:证书、设备、描述文件为什么总是"对不上"
前端