0

0

Vue.js实战入门:如何对数组和对象进行循环

青灯夜游

青灯夜游

发布时间:2022-11-15 15:32:45

|

2010人浏览过

|

来源于learnku

转载

Vue.js实战入门:如何对数组和对象进行循环

上一节中 (课程第三部分) 我们学习了如何使用 v-ifv-show 进行条件渲染。本节我们将学习如何对数组和对象进行循环,除此之外,我们还将应用之前所学的一些概念。

v-for

v-for 是 Vue 的基本指令之一,一旦你学会如何使用它,你就可以在你的程序中添加更多功能。

简单的来说,v-for 就是一个 for 循环。如果你还不知道什么是 for 循环的话,for 循环其实是一段代码,代码内每一个元素都会被执行一次,而这些元素通常是一个 Array(数组)Object(对象)

今天,我们要从头开始,这样我们所做的一切都有一个明确的目的。下面是我们的 index.html 文件的基本结构,你可以将它复制粘贴到编辑器中。

立即学习前端免费学习笔记(深入)”;




  Vue 101



  

让我们先创建一个简单的数组,这样我们可以使用循环输出数组里的内容。我们将在 data 对象中创建一个属性,叫做 games。当然,你也可以取一个自己喜欢的名字???。

data: {
  games: [
    'Super Mario 64',
    'The Legend of Zelda Ocarina of Time',
    'Secret of Mana',
    'Super Metroid'
  ]
},

现在我们已经设置好了数组,让我们创建一个简单的

    标签来显示它。

    • Game title here

    看起来很不错! 现在我们要告诉 Vue,我们要通过循环数组在

      中输出尽可能多的
    • 标签。

      在其他语言中,你可能已经习惯了这样来循环输出

    • 标签:

      
        
    • 将需要循环输出的

    • 标签包裹在循环中。

      但是在 Vue 中,我们可以将 v-for 指令声明在我们要循环的标签上。首先在你的

    • 标签中做下面这些修改,之后我们再来一步步分析。

      • {{ game }}

      让我们来详细分析一下:

      • v-for 指令是直接加在

      • 标签中,而不是我们前面看到的
          标签。这样写的原因是: “给我们 games 数组中的每一个 game 都创建一个
        • 标签。

        • 注意,games 是我们前面在 data 中添加的属性,所以我们要用这个变量名。

        • game 这个变量(单数)是由我们自己定义的,我们可以用 itemgametitle 或者其他我们觉得合适的名称。但是一定要明白,这个 game 是你在循环里面要用的变量。

        • 最后,在我们的

        • 标签里面,我们要输出 game 变量的内容,所以当我们循环运行的时候,将会依次把 games 数组中的字符串输出到
        • 标签中。

        在浏览器内打开我们的 index.html 文件,你应该会看到 games 数组内的内容被输出到屏幕上。

        提升点难度

        到目前为止,还算不错吧? v-for 实际上是一个非常简单的概念,但是这个例子太无聊了。让我们把事情变得更复杂有趣一点,在我们的数组中包含一些对象,并配合着 v-if 使用,怎么样?

        首先,我们用一些更有趣的数据来更新我们的 games 属性。

        WPS AI
        WPS AI

        金山办公发布的AI办公应用,提供智能文档写作、阅读理解和问答、智能人机交互的能力。

        下载
        data: {
          games: [
            { name: 'Super Mario 64', console: 'Nintendo 64', rating: 4 },
            { name: 'The Legend of Zelda Ocarina of Time', console: 'Nintendo 64', rating: 5 },
            { name: 'Secret of Mana', console: 'Super Nintendo', rating: 4 },
            { name: 'Fallout 76', console: 'Multiple', rating: 1 },
            { name: 'Super Metroid', console: 'Super Nintendo', rating: 6 }
          ]
        },

        如果你现在运行我们的程序,它不会出错,但它只会以字符串的格式输出 games 里的对象,这不太美观。事实上,我们要彻底删掉我们的

          标签,用
          标签来输出我们的信息。(别担心,用了 div 还是会很难看?)

          将整个

          替换成如下内容:

          {{ game.name }} - {{ game.console }}

          ❤️
          Wow, this game must be REALLY good

          ?. 看到上面一大堆是不是很害怕?不用担心,你只需要了解的是什么,让我们详细分析一下:

          • div v-for="game in games" 还是老样子,我们要循环 games 数组,并将 games 数组内的每个对象存储在 game 变量中。

          • 看看

            标签. 因为 game 是一个对象,而这个对象里又有自己的 nameconsolerating 属性。在

            里面,我们要输出 game 内的 game.namegame.console。正如你现在所看到的那样,v-for 并不像我们之前只输出
          • 标签,实际上你可以根据你的需要输出不同的 HTML 标签。

          • 嵌套的 v-for。在 span 标签里面,我们有一个嵌套的 v-for 循环(这完全是可以的),只是有点不同,在这里我们没有循环数组或对象。而是循环了一个数值(在本例中是 game.rating,循环将根据 game.rating 的值开始计数,然后输出对应数量的❤️。很简单吧?)

          • 最后是 v-if。我们要在循环中输出一个

            标签,只有当前 game.rating 的值大于 5 时,才会输出一个
            标签。

            来吧,在浏览器中继续运行我们的 index.html 文件。

            每次循环时可不可以不使用 DIV ?

            如果你发现写了一大堆

            标签只是为了用 v-for 循环,那么可以使用 这个特殊的 HTML 标签帮助你解决这个问题。

            现在将带有 v-for 指令的

            标签改成 标签,然后打开你的开发者控制台,你会发现

            标签没有被任何东西包裹。

            很特别,因为 Vue 会把它当作一个只用来封装的标签,当我们执行的时候,它不会被渲染到 HTML 中,所以你可以安全地用它来封装一堆其他元素,而不影响你整体的 HTML 结构。

            :key 属性

            最后一件事::key属性。我特意留到了最后来讲解。

            当你用 v-for 循环时,Vue 不知道如何追踪每个元素,因为它不能将对象区别开来。这意味着 Vue 将重新渲染循环创建的整个部分。在我们的例子中,v-for 只是一个很小的部分,性能损失很小,但这些你应该牢记住。

            现在,我们该如何使用它呢?

            :key 接收字符串或数字来 “命名” 或 “追踪” 这个元素,所以我们需要给它一个唯一的标识符。对于我们的 games 来说,很简单,我们可以这样做:

            我很确定,我们不会在这个列表中出现两次相同的 game 对象,所以这是相当安全的。如果你有来自数据库的数据,一个唯一的 id 在这里使用也很好。

            如果你对 :key 的原理很好奇,你可以看看文档 Key的文档

            既然你已经了解了这么多,我就再强调下文档的重要性。 Vue 的文档非常出色,文档团队在保持更新和清晰性方面做了很多努力并且通过代码示例把每个部分都解释的非常清楚。

            最终代码

            以防万一,这是最终的代码:

            
            
            
              Vue 101
            
            
            
            

            {{ game.name }} - {{ game.console }}

            ❤️
            Wow, this game must be REALLY good

            小测验

            请在 标签中添加一个 @click 事件,使它每次点击就会增加一个❤️。

            提示: 你需要将正在循环的 game 对象传递给点击方法。

            原文地址:https://dev.to/marinamosti/hands-on-vuejs-for-beginners-part-4-324l译文地址:https://www.php.cn/link/5a13fe4ac11f3e35f4b9f0a99cf504c0

            (学习视频分享:web前端开发编程基础视频

        • 热门AI工具

          更多
          DeepSeek
          DeepSeek

          幻方量化公司旗下的开源大模型平台

          豆包大模型
          豆包大模型

          字节跳动自主研发的一系列大型语言模型

          通义千问
          通义千问

          阿里巴巴推出的全能AI助手

          腾讯元宝
          腾讯元宝

          腾讯混元平台推出的AI助手

          文心一言
          文心一言

          文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

          讯飞写作
          讯飞写作

          基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

          即梦AI
          即梦AI

          一站式AI创作平台,免费AI图片和视频生成。

          ChatGPT
          ChatGPT

          最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

          相关专题

          更多
          vue.js为什么报错
          vue.js为什么报错

          vue.js报错的原因:1、语法错误;2、组件使用不当;3、数据绑定问题;4、生命周期钩子使用不当;5、插件或依赖问题;6、路由配置错误;7、异步操作处理不当等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

          120

          2024.03.11

          vue.js插槽有哪些用
          vue.js插槽有哪些用

          vue.js插槽的作用:1、提高组件的可重用性;2、实现组件的灵活布局;3、实现组件间的数据传递和交互;4、促进组件的解耦和模块化。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

          178

          2024.03.11

          vue.js怎么带参数跳转
          vue.js怎么带参数跳转

          vue.js带参数跳转的方法:1、定义路由;2、在组件中使用路由参数;3、进行带参数的跳转。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

          92

          2024.03.11

          if什么意思
          if什么意思

          if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

          778

          2023.08.22

          mysql标识符无效错误怎么解决
          mysql标识符无效错误怎么解决

          mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

          183

          2023.12.04

          Python标识符有哪些
          Python标识符有哪些

          Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

          287

          2024.02.23

          java标识符合集
          java标识符合集

          本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

          259

          2025.06.11

          c++标识符介绍
          c++标识符介绍

          本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

          125

          2025.08.07

          C++ 设计模式与软件架构
          C++ 设计模式与软件架构

          本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

          7

          2026.01.30

          热门下载

          更多
          网站特效
          /
          网站源码
          /
          网站素材
          /
          前端模板

          精品课程

          更多
          相关推荐
          /
          热门推荐
          /
          最新课程
          Vue 教程
          Vue 教程

          共42课时 | 7.4万人学习

          Vue3.x 工具篇--十天技能课堂
          Vue3.x 工具篇--十天技能课堂

          共26课时 | 1.5万人学习

          关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
          php中文网:公益在线php培训,帮助PHP学习者快速成长!
          关注服务号 技术交流群
          PHP中文网订阅号
          每天精选资源文章推送

          Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号