广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue指令之v-for的使用说明
  • 358
分享到

Vue指令之v-for的使用说明

2024-04-02 19:04:59 358人浏览 薄情痞子
摘要

目录Vue v-for的使用1.迭代普通数组2.迭代对象数组3.迭代对象4.迭代数字v-for的最佳使用技巧1.始终在v-for循环中使用key2.不要在循环中使用v-if3.使用计

Vue v-for的使用

1.迭代普通数组

在data中定义普通数组

data:{
      list:[1,2,3,4,5,6]
}

html中使用 v-for 指令渲染

<p v-for="(item,i) in list">--索引值--{{i}}   --每一项--{{item}}</p>

2.迭代对象数组

在data中定义对象数组

data:{
      list:[1,2,3,4,5,6],
      listObj:[
        {id:1, name:'zs1'},
        {id:2, name:'zs2'},
        {id:3, name:'zs3'},
        {id:4, name:'zs4'},
        {id:5, name:'zs5'},
        {id:6, name:'zs6'},
      ]
}

在html中使用 v-for 指令渲染

<p v-for="(user,i) in listObj">--id--{{user.id}}   --姓名--{{user.name}}</p>

3.迭代对象

在data中定义对象

data:{
      user:{
        id:1,
        name:'托尼.贾',
        gender:'男'
      }
}

在html中使用 v-for 指令渲染

<p v-for="(val,key) in user">--键是--{{key}}--值是--{{val}}</p>

4.迭代数字

<!-- 注意:如果使用v-for迭代数字的话,前面 count 的值从 1 开始-->
<p v-for="count in 10">这是第{{count}}次循环</p>

完整代码:

<html>
  <head>
    <meta Http-equiv="Content-Type" content="text/html; charset=utf-8" />
  </head>
<body>
  <div id='app'>
    <!--v-for循环普通数组-->
    <p v-for="(item,i) in list">--索引值--{{i}}   --每一项--{{item}}</p>
    <br/>
    <!--v-for循环对象数组-->
    <p v-for="(user,i) in listObj">--id--{{user.id}}   --姓名--{{user.name}}</p>
    <br/>
    <!--注意,在遍历对象的键值对的时候,除了有 val 和 key,在第三个位置还有一个索引-->
    <p v-for="(val,key) in user">--键是--{{key}}  --值是--{{val}}</p>
    <br/>
    <!-- in 后面我们放过数组、对象数组、对象,还可以放数字-->
    <!-- 注意:如果使用v-for迭代数字的话,前面 count 的值从 1 开始-->
    <p v-for="count in 10">这是第{{count}}次循环</p>
  </div>
</body>
<script src="vue.min.js"></script>
<script>
  var vm = new Vue({
    el:'#app',
    data:{
      list:[1,2,3,4,5,6],
      listObj:[
        {id:1, name:'zs1'},
        {id:2, name:'zs2'},
        {id:3, name:'zs3'},
        {id:4, name:'zs4'},
        {id:5, name:'zs5'},
        {id:6, name:'zs6'},
      ],
      user:{
        id:1,
        name:'托尼.贾',
        gender:'男'
      }
    }
  });
</script>
</html>

截图:

v-for的最佳使用技巧

在vuejs中,v-for 的使用是比较常见的,它允许您在模板代码中编写for循环。那么在使用v-for的时候,可曾思考过使用这个指令的一些技巧吗?

在介绍它的使用技巧之前,我先介绍下它的基本用法吧,在vue中v-for可以遍历数组、对象、字符串,但是用的最多的还是遍历数组,基本方法如下:

<div id="app">
    <ul>
  <li v-for='item in list'>
    {{ item.name }}
  </li>
</ul>
</div>

可能有些初学者在使用的过程中,不会考虑太多的使用技巧,直接遍历定义在data中的数据,其实vue在设计的初衷,也考虑到了这个问题,如果频繁使用data中的数据,可能会造成一些性能上的消耗,是相当不友好的。

在本篇文章中,我将介绍六种方法来使你的 v-for 代码更加精确,可预测和强大。

1.始终在v-for循环中使用key

建议在遍历数据的时候,都尽可能的加上key,设置一个惟一的键属性,它可以确保组件以您期望的方式工作。有些时候,可能使用索引index也可以,但是在一些特定的场景下,比如多场景登录下,如果不使用key来标识当前使用的登录方式,那么可能会造成数据的紊乱问题,如果数据量比较大, 页面的数据更新时会造成渲染数据消耗很大的性能甚至出现不可预测的bug,如果我们对每个元素都有唯一的键引用,那么我们就可以更好地准确地预测DOM将如何操作,就可以避免很多不必要的问题出现。

<div id="app">
    <ul>
  <li v-for='item in list'  :key='item.id'>
    {{ item.name }}
  </li>
</ul>
</div>

2.不要在循环中使用v-if

一个超级常见的错误是使用 v-if 来过滤 v-for 循环的数据。Vuejs优先考虑 v-for 而不是 v-if,这意味着组件将循环遍历每个元素,然后检查 v-if 条件以确定是否应渲染。因此,实际上,无论条件是什么,都将遍历数组。尽管这看起来很直观,但它会导致一个巨大的性能问题


<div id="app">
    <ul>
  <li v-for='item in list'
      :key='item.id'
      v-if="item.price<50"
      >
    {{ item.name }}
  </li>
</ul>
</div>

3.使用计算属性或方法来处理数据后再做数据遍历

为避免上述问题,我们应该在遍历模板中的数据之前对其进行过滤。有两种非常相似的方法

  • 使用计算属性
  • 使用过滤方法

首先,我们只需要设置一个计算属性,为了获得与之前的v-if相同的功能,代码应如下所示。

<div id="app">
    <ul>
  <li v-for='item in underPrice'
      :key='item.id'
      >
    {{ item.name }}
  </li>
</ul>
</div>
<script>
  export default {
    data () {
      return {
        list: []
      }
    },
    computed: {
      underPrice: function () {
        return this.list.filter(item=> item.price < 50)
      }
    }
  }
</script>

计算属性是作为属性使用的,并不是方法。使用computed,可以将数据做缓存处理,在每次渲染数据的时候,会优先在缓存在找该数据,如果有了直接从缓存中取出渲染,如果没有的话再重新获取。这样也大大的提高了性能。

或者可以使用方式来进行变量的筛选以及处理再做遍历

<div id="app">
    <ul>
  <li v-for='item in underPriceHandle(50)'
      :key='item.id'
      >
    {{ item.name }}
  </li>
</ul>
</div>
<script>
  export default {
    data () {
      return {
        list: []
      }
    },
    methods: {
      underPriceHandle: function (price) {
        return this.list.filter(item=> item.price < price)
      }
    }
  }
</script>

4.在一个范围内循环

尽管大多数情况下,v-for 用于遍历数组或对象,但在某些情况下,我们肯定只希望循环执行一定次数。

例如,假设我们正在为在线商店创建一个分页系统,而我们只希望每页显示10个产品。使用一个变量来跟踪当前的页码,我们可以像这样处理分页。

<ul>
  <li v-for='index in 10' :key='index'>
    {{ books[page * 10 + index] }}
  </li>
</ul>

5.在循环中访问项目的索引

除了遍历数组和访问每个元素之外,我们还可以跟踪每个项的索引。

为此,我们必须在项目后添加一个索引值,它非常简单,可用于分页,显示列表索引,显示排名等。

<ul>
  <li v-for='(item, index) in products' :key='item.id' >
   {{ index }}----{{ item.name }}
  </li>
</ul>

6.遍历一个对象

我们也可以使用v-for轻松地遍历对象的键值对。

与访问元素的索引类似,我们必须向循环中添加另一个值。如果我们用一个参数遍历一个对象,我们将遍历所有的项。

如果我们添加另一个参数,我们将获得items 和 key,如果添加第三个,我们还可以访问 v-for 循环的索引。

<ul>
  <li v-for='(list, index) in lists' :key='list.id' >
    <span v-for='(item, key, index) in list' :key='key'>
      {{ item }}
    </span>
  </li>
</ul>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: Vue指令之v-for的使用说明

本文链接: https://www.lsjlt.com/news/145352.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Vue指令之v-for的使用说明
    目录Vue v-for的使用1.迭代普通数组2.迭代对象数组3.迭代对象4.迭代数字v-for的最佳使用技巧1.始终在v-for循环中使用key2.不要在循环中使用v-if3.使用计...
    99+
    2022-11-13
  • Vue的指令v-for怎么使用
    这篇文章主要介绍了Vue的指令v-for怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue的指令v-for怎么使用文章都会有所收获,下面我们一起来看看吧。Vue v-for的使用1.迭代普通数组在da...
    99+
    2023-06-29
  • Vue中v-for指令有什么用
    这篇文章主要介绍Vue中v-for指令有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!v-for用 v-for 指令根据遍历数组来进行渲染有下面两种遍历形式<div&nb...
    99+
    2022-10-19
  • Vue的列表渲染指令v-for怎么使用
    这篇文章主要介绍“Vue的列表渲染指令v-for怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue的列表渲染指令v-for怎么使用”文章能帮助大家解决问题。Vue的列表渲染1.1.v-fo...
    99+
    2023-07-04
  • Vue中常用指令v-if, v-for, v-show,v-else, v-bind, v-on有什么用
    这篇文章给大家分享的是有关Vue中常用指令v-if, v-for, v-show,v-else, v-bind, v-on有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。V...
    99+
    2022-10-19
  • Vue指令之 v-cloak、v-text、v-html的示例分析
    小编给大家分享一下Vue指令之 v-cloak、v-text、v-html的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2022-10-19
  • vue中的v-touch事件用法说明
    目录v-touch事件用法v-touch实现页面假左右切换效果v-touch事件用法 1.先下载 cnpm install vue-touch@next --save dev 2.在...
    99+
    2022-11-13
  • Vue中指令v-bind动态绑定及与v-for结合使用详解
    目录前言:一、 v-bind动态绑定class1. v-bind动态绑定class(对象语法)2. v-bind动态绑定class(数组用法)3.v-bind动态绑定sty...
    99+
    2022-11-13
  • Vue指令v-show和v-if怎么使用
    本文小编为大家详细介绍“Vue指令v-show和v-if怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue指令v-show和v-if怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、v-sho...
    99+
    2023-06-29
  • 关于Vue v-on指令的使用
    目录1、监听事件2、传入event参数3、事件修饰符案例1:阻止单击事件继续传播案例2:提交事件不再重载页面1、监听事件 可以用 v-on 指令监听 DOM 事件,并在触发时运行一些...
    99+
    2022-11-12
  • 怎么使用Vue中v-指令
    这篇文章主要介绍“怎么使用Vue中v-指令”,在日常操作中,相信很多人在怎么使用Vue中v-指令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Vue中v-指令”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-25
  • vue中v-for指令的key值可以是index吗
    本篇内容介绍了“vue中v-for指令的key值可以是index吗”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么 v-for 的 ke...
    99+
    2023-06-28
  • Vue.js中v-for指令的用法介绍
    一、什么是v-for指令 在Vue.js中,我们可以使用v-for指令基于源数据重复渲染元素。也就是说可以使用v-for指令实现遍历功能,包括遍历数组、对象、数组对象等。 二、遍历数...
    99+
    2022-11-13
  • vue之Vue.use的使用场景及说明
    目录vue之Vue.use的场景首先看下使用场景Vue.use是干什么的?总结vue之Vue.use的场景 首先看下使用场景 基于vue官网提供如下: 插件—Vue.j...
    99+
    2022-12-08
    vue Vue.use Vue.use使用场景 vue Vue.use的场景
  • vue指令中的v-once怎么使用
    本篇内容主要讲解“vue指令中的v-once怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue指令中的v-once怎么使用”吧!v-once在日常开发中用的很多只渲染元素和组件一次,随...
    99+
    2023-06-30
  • Vue中v-model指令如何使用
    今天就跟大家聊聊有关Vue中v-model指令如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。v-model 用在 input 元素上时v-m...
    99+
    2022-10-19
  • vue指令中的v-once用法
    目录v-once在日常开发中用的很多常见用法如下v-once是什么v-once在日常开发中用的很多 只渲染元素和组件一次,随后的渲染,使用了此指令的元素/组件及其所有的子节点,都会当...
    99+
    2022-11-13
  • Vue中列表渲染指令v-for的基本用法详解
    目录一、原理概述二、基本用法(1)v-for循环普通数组(2)v-for循环对象(3)v-for循环对象数组(4)v-for迭代整数 一、原理概述 v-for指令时在模板编...
    99+
    2023-05-17
    Vue列表渲染指令v-for使用 Vue列表渲染指令v-for Vue列表渲染v-for Vue v-for
  • Vue中怎么利用v-for指令实现数据分组
    本篇文章为大家展示了Vue中怎么利用v-for指令实现数据分组,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:<!DOCTYPE html&...
    99+
    2022-10-19
  • vue中怎么利用v-for指令直接循环数字
    本篇文章给大家分享的是有关vue中怎么利用v-for指令直接循环数字,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。vue v-for直接循环数...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作