当前位置: 首页 > news >正文

vue在template块里使用v-for循环对象、数组及嵌套结构数据

目录

一、基本数据类型

二、循环对象

三、循环数组及嵌套结构

四、其他类型循环

五、总结


一、基本数据类型

        在vue中,有对象、数组、字符串、数字等类型的结构,在模板渲染时,可以使用v-for省略大部分重复性的代码,特别是对对象和数组及对象和数组相互嵌套的结构的循环。我们需要了解遍历相关对象的key或value的写法。

二、循环对象

        对象就是由几组key:value形式所组成的一个结构对象,对应python中的字典。在vue中循环对象的话,可以选择只循环key或只循环value,当然也可以一组一组循环。

<template>
    <!-- 只循环值的话使用解包形式,用index作为key。因为value可能会有重复,尽量不重复。 -->
    <template v-for="(value, index) in Object.values(obj)" :key="index">
        <p style="text-align: center;">{{ value }}</p>
    </template>

    <template v-for="key in Object.keys(obj)" :key="key">
        <p style="text-align: center;">{{ key }}</p>
    </template>

    <template v-for="(value, key, index) in obj" :key="key">
        <p style="text-align: center;">{{ index }}.{{ key }}-{{ value }}</p>
    </template>
</template>


<script setup>
import { ref, reactive } from 'vue'

const obj = reactive({
    'title': 'title1',
    'content': 'content1'
})


</script>

 

三、循环数组及嵌套结构

        数组由多个项组成的,同python中的列表概念一样。循环列表,一样可以使用上述方法。

<template>
    <!-- 不带index的循环列表中每一项 -->
    <template v-for="item in listObj" :key="item.title">
        <p style="text-align: center;">{{ item.title }}-{{ item.content }}</p>
    </template>

    <!-- 带index循环列表 -->
    <template v-for="(item, index) in listObj" :key="index">
        <p style="text-align: center;">{{ index }}.{{ item.title }}-{{ item.content }}</p>
    </template>

    <!-- 嵌套结构,逐级解包循环 -->
    <template v-for="(item, index) in listObj" :key="index">
        <template v-for="(value, key, _) in item" :key="key">
            <p style="text-align: center;">{{ index }}.{{ item.title }}-{{ item.content }}</p>
        </template>
    </template>
</template>


<script setup>
import { ref, reactive } from 'vue'

const listObj = reactive([
    {
        'title': 'title2',
        'content': 'content2'
    },
    {
        'title': 'title3',
        'content': 'content3'
    }
])

</script>

 

四、其他类型循环

        其余类型的循环就比较好理解了,字符串则是循环每一个字符,数字循环则是从小到大。

<template>
    <!-- 循环数字(可以带index) -->
    <template v-for="i in 3" :key="i">
        <p style="text-align: center;">{{ i }}</p>
    </template>

    <!-- 循环字符串(可以带index) -->
    <template v-for="i in 'String'" :key="i">
        <p style="text-align: center;">{{ i }}</p>
    </template>
</template>

五、总结

        通过上面几种数据类型的遍历,发现循环的值可以有两个及以上的值,最后一个为当前遍历值在遍历对象下的index。且当遍历对象时,vue遵循值优先的理念,占位顺序分别为value, key,这点和其他语音有出入。

        对象:v-for="(value, key, index) in obj"

        数组:v-for="(item, index) in arr"

相关文章:

  • Redis-01.Redis课程内容介绍
  • YO-CSA-T:基于上下文与空间注意力的实时羽毛球轨迹追踪系统解析
  • 为什么package.json里的npm和npm -v版本不一致?
  • Flutter项目之构建打包分析
  • OpenCV 图形API(4)内核 API
  • 某合约任意提取BNB漏洞
  • centos7修复漏洞CVE-2023-38408
  • 群晖(Synology)存储目录挂载到Ubuntu 22.04.3 LTS系统的详细教程
  • 左右图文布局-语雀笔记
  • 力扣DAY34 | 热100 | 合并K个升序链表
  • ant-design-vue中英文切换
  • 【Easylive】SpringBoot启动类——EasyLiveWebRunApplication
  • MySQL索引优化全攻略:从原理到实战
  • OpenAI发布的《Addendum to GPT-4o System Card: Native image generation》文件的详尽笔记
  • MySQL执行原理
  • 测试用例篇
  • 各种网址整理-vue开发,vue组件,linux部署,ai前端开发,前端基础开发,各种开发能用到的网址和一些有用的博客
  • P1449 后缀表达式
  • MySQL 大数据处理优化与分布式架构探索
  • Docker部署前后端分离项目
  • seo排名工具站长/不限次数观看视频的app
  • 电影网站源码怎么做的/八八网
  • 中国城乡和住房建设部网站/营销必备十大软件
  • 政府网站建设 报价/推广发帖网站
  • 哪个网站做视频有钱挣/建网站专业
  • 改行做网站/台州seo排名优化