我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue.js怎么对数组和对象进行循环

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue.js怎么对数组和对象进行循环

本文小编为大家详细介绍“Vue.js怎么对数组和对象进行循环”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue.js怎么对数组和对象进行循环”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

v-for

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

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

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

<html><head>  <title>Vue 101</title></head><body>  <div id="app">  </div>  <script class="lazy" data-src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  <script>    const app = new Vue({      el: '#app',      data: {      },      methods: {      }    });  </script></body></html>

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

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

现在我们已经设置好了数组,让我们创建一个简单的 <ul> 标签来显示它。

<div id="app">  <ul>    <li>Game title here</li>  </ul></div>

看起来很不错! 现在我们要告诉 Vue,我们要通过循环数组在 <ul> 中输出尽可能多的 <li> 标签。

在其他语言中,你可能已经习惯了这样来循环输出 <li> 标签:

<?php foreach ($game in $games): ?>  <li><?php echo $game; ?></li><?php endforeach; ?>

将需要循环输出的 <li> 标签包裹在循环中。

但是在 Vue 中,我们可以将 v-for 指令声明在我们要循环的标签上。首先在你的 <li> 标签中做下面这些修改,之后我们再来一步步分析。

<ul>  <li v-for="game in games">{{ game }}</li></ul>

让我们来详细分析一下:

  • v-for 指令是直接加在 <li> 标签中,而不是我们前面看到的 <ul> 标签。这样写的原因是: “给我们 games 数组中的每一个 game 都创建一个 <li> 标签。

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

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

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

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

提升点难度

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

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

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 里的对象,这不太美观。事实上,我们要彻底删掉我们的 <ul> 标签,用 <div> 标签来输出我们的信息。(别担心,用了 div 还是会很难看?)

将整个 <div id="app"> 替换成如下内容:

<div id="app">  <div v-for="game in games">    <h2>{{ game.name }} - <small>{{ game.console }}</small></h2>    <span v-for="star in game.rating">❤️</span>    <div v-if="game.rating > 5">Wow, this game must be <b>REALLY</b> good</div>  </div></div>

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

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

  • 看看 <h2> 标签. 因为 game 是一个对象,而这个对象里又有自己的 nameconsolerating 属性。在 <h2> 里面,我们要输出 game 内的 game.namegame.console。正如你现在所看到的那样,v-for 并不像我们之前只输出 <li> 标签,实际上你可以根据你的需要输出不同的 HTML 标签。

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

  • 最后是 v-if。我们要在循环中输出一个 <div> 标签,只有当前 game.rating 的值大于 5 时,才会输出一个<div>标签。

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

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

如果你发现写了一大堆 <div> 标签只是为了用 v-for 循环,那么可以使用 <template> </ template> 这个特殊的 HTML 标签帮助你解决这个问题。

现在将带有 v-for 指令的 <div> 标签改成 <template> 标签,然后打开你的开发者控制台,你会发现 <h2><span> 标签没有被任何东西包裹。

Vue.js怎么对数组和对象进行循环

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

:key 属性

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

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

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

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

<div v-for="game in games" :key="game.name">

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

最终代码

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

<html><head>  <title>Vue 101</title></head><body><div id="app">  <div v-for="game in games" :key="game.name">    <h2>{{ game.name }} - <small>{{ game.console }}</small></h2>    <span v-for="star in game.rating">❤️</span>    <div v-if="game.rating > 5">Wow, this game must be <b>REALLY</b> good</div>  </div></div>  <script class="lazy" data-src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  <script>    const app = new Vue({      el: '#app',        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 }          ]        }    });  </script></body></html>

读到这里,这篇“Vue.js怎么对数组和对象进行循环”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue.js怎么对数组和对象进行循环

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue.js怎么对数组和对象进行循环

本文小编为大家详细介绍“Vue.js怎么对数组和对象进行循环”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue.js怎么对数组和对象进行循环”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。v-forv-for
2023-07-04

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

欢迎回来! ? 上一节中 (课程第三部分) 我们学习了如何使用 v-if 和 v-show 进行条件渲染。本节我们将学习如何对数组和对象进行循环,除此之外,我们还将应用之前所学的一些概念。 v-for v-for 是 Vue 的基本指令之一...
2022-11-22

怎么在Linux中对shell数组进行循环

这篇文章给大家介绍怎么在Linux中对shell数组进行循环,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。shell数组循环测试shell数组,循环的例子: arr=("a" "b" "c") echo "所有的内容
2023-06-09

PHP对数组进行循环的方法

小编给大家分享一下PHP对数组进行循环的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.利用for循环
2023-06-14

怎么将jquery对象和js对象进行转换

怎么将jquery对象和js对象进行转换?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。jquery是什么jquery是一个简洁而快速的JavaScript库,它具有独特的链
2023-06-14

在 golang 中最有效的数组对象循环和分组方法

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《在 golang 中最有效的数组对象循环和分组方法》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享
在 golang 中最有效的数组对象循环和分组方法
2024-04-04

vue怎么循环给对象赋值

这篇文章主要介绍“vue怎么循环给对象赋值”,在日常操作中,相信很多人在vue怎么循环给对象赋值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么循环给对象赋值”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-30

php数组怎么循环添加键值对

在PHP中,可以使用foreach循环来遍历数组,并使用[]操作符来添加键值对。下面是一个示例,演示了如何循环添加键值对到一个数组中:```php$fruits = array("apple", "banana", "orange");$n
2023-09-26

对Python循环对象的理解是怎么样的

对Python循环对象的理解是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x
2023-06-02

怎么在JavaScript中对数组进行求和

这篇文章将为大家详细讲解有关怎么在JavaScript中对数组进行求和,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。JavaScript数组求和的方法:1、for循环,代码为【for (va
2023-06-14

PHP面向对象编程怎么对对象进行封装

这篇文章主要讲解了“PHP面向对象编程怎么对对象进行封装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP面向对象编程怎么对对象进行封装”吧!我们今天为大家介绍的是关于PHP面向对象编程的
2023-06-17

怎么在Java8中利用forEach语句对List和Map进行循环

本文章向大家介绍怎么在Java8中利用forEach语句对List和Map进行循环的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序
2023-06-06

php怎么对数组进行转码

这篇文章主要介绍php怎么对数组进行转码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php对数组进行转码的方法是,使用mb_convert_encoding函数转换字符的编码,例如【mb_convert_encod
2023-06-15

java怎么在循环里面创建对象

在Java中,在循环内创建对象的方式与在循环外创建对象的方式是一样的。可以在循环体中使用new关键字来创建新的对象,然后将其赋值给一个变量。以下是一个示例:javafor (int i = 0; i // 在循环体内创建对象MyClass
2023-10-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录