编写 Vue v-for 循环的 7 种方式

编写 Vue v-for 循环的 7 种方式

1. 基础使用方式

Vue 的 v-for 指令可以很方便地遍历数组或对象,如下所示:

<ul>
  <li v-for="(item, index) in items">{{ item }},索引:{{ index }}</li>
</ul>

其中,item 表示被遍历的当前元素,index 表示当前元素在数组中的索引值。

2. 遍历对象

实际上,v-for 指令也可以用于遍历对象,如下所示:

<ul>
  <li v-for="(value, key, index) in obj">{{ key }}: {{ value }},索引:{{ index }}</li>
</ul>

其中,value 表示对象中每个键对应的值,key 表示当前对象键名,index 表示当前元素在对象中的索引值。

3. 使用 v-for 和 v-bind:key 遍历元素

在使用 v-for 指令时,需要为每个元素设置一个独一无二的 key 值,以便 Vue 根据新旧节点之间的关系可以高效的渲染元素,如下所示:

<ul>
  <li v-for="(item, index) in items" :key="index">{{ item }}</li>
</ul>

4. 用 v-for 和 v-if 遍历过滤后的数组

v-for 指令可以与 v-if 指令一起使用,来筛选出符合条件的元素进行渲染,如下所示:

<ul>
  <li v-for="(item, index) in items" v-if="item.show">{{ item.text }}</li>
</ul>

5. 使用 v-for 和组件渲染列表

在父组件中使用 v-for 指令遍历数据并渲染出子组件,子组件接收父组件传递的 props,来显示对应的内容,如下所示:

<template>
  <div>
    <my-component v-for="(item, index) in items" :key="index" :name="item.name" :content="item.content" />
  </div>
</template>

<script>
import MyComponent from './MyComponent.vue'

export default {
  components: { MyComponent },
  data() {
    return {
      items: [
        {
          name: '标题1',
          content: '内容1'
        },
        {
          name: '标题2',
          content: '内容2'
        }
      ]
    }
  }
}
</script>

6. 使用 v-for 和计算属性渲染列表

在 Vue 中可以将多个数据源进行计算得出需要的数据再进行遍历渲染,如下所示:

<template>
  <div>
    <ul>
      <li v-for="(item, index) in computedItems">{{ item }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [1, 2, 3, 4]
    }
  },
  computed: {
    computedItems() {
      return this.list.map(item => item * 2)
    }
  }
}
</script>

7. 用 v-for 遍历多维数组

在 vue 中,v-for 指令可以遍历多维数组,只需要添加多个 v-for 指令即可,如下所示:

<ul>
  <li v-for="(item, index) in items">
    <span v-for="(value, key) in item">{{ key }}: {{ value }},</span>索引:{{ index }}
  </li>
</ul>

以上就是编写 Vue v-for 循环的 7 种方式的完整攻略,希望能对大家有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:编写 Vue v-for 循环的 7 种方式 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue实现单一筛选、删除筛选条件

    要实现单一筛选、删除筛选条件,我们需要理解 Vue 组件之间的通信,具体的做法是使用一个共享状态管理筛选条件,当用户点击筛选或者删除筛选条件时,修改这个共享状态,并通知组件进行相应的更新。这个共享状态可以借助于 Vuex 状态管理器实现。 下面是实现这个功能的具体步骤: 第一步:创建 Vuex 状态管理器 声明一个对象作为 Vuex 的 state,这个 s…

    Vue 2023年5月29日
    00
  • vue中关于_ob_:observer的处理方式

    在 Vue 中,ob 是一个内部属性,用于标记一个对象是否已被 Vue 的观察者系统观察。当把一个对象传递给 Vue 实例后,Vue 会通过响应式的方式将这个对象转化成 getter/setter 对象,并在 ob 属性中添加一个标记,以便后续的处理。 如果一个数据对象被多个 Vue 实例中的 JSON.stringify 或 $watch 观察,那么就会引…

    Vue 2023年5月28日
    00
  • Vite使用Esbuild提升性能详解

    Vite使用Esbuild提升性能详解 背景 Vite是一个轻量级的前端工具,它的设计初衷是为了让开发者更快地启动和构建项目,提供了一些开箱即用的特性和优化,例如快速启动、模块热更新等。其中,Vite的关键特性之一就是使用了类似于Snowpack的“零配置”的模式进行快速的开发体验。 然而,在一些情况下,Vite的构建速度还是无法满足一些开发者的需求。因此,…

    Vue 2023年5月28日
    00
  • vue3如何实现PDF文件在线预览功能

    Vue 3是基于前端开发框架Vue.js的最新版本,其具有更强大的响应式系统和优化后的编译器,使得开发体验更加简单、高效。本文将详细讲解如何使用Vue 3实现PDF文件在线预览功能的完整攻略。 步骤1 安装pdf.js PDF.js是一个用于在Web平台上显示PDF文档的开源项目,它基于HTML5 Canvas技术,可以解析PDF文档并将其转换为可供浏览器渲…

    Vue 2023年5月28日
    00
  • 解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)

    在使用Vue开发过程中,有时候我们会遇到数据更改了,但是界面并没有实时更新的问题。这是因为Vue使用了异步更新的机制,当数据发生更改时,界面并不会立即更新,而是等到下一轮微任务执行更新。因此,我们需要采取一些措施来解决这个问题。 解决Vue数据不实时更新的问题 1. 使用Vue.$set方法 在Vue中,我们通常使用Object.defineProperty…

    Vue 2023年5月27日
    00
  • vue的插槽原来该这样理解

    当我们在开发Vue组件时,有些情况下需要动态地处理组件内部的内容。Vue提供了插槽( Slot )来解决这个问题。通过使用插槽,我们可以将父组件中的任意内容插入子组件中的指定位置,从而实现一种非常灵活的组件封装和组合方式。 一、插槽的用法和基本原理 1.1 插槽基础使用 插槽的基本原理是以 标签作为承载位置,用于显示父组件中传递过来的内容。 下面是一个例子:…

    Vue 2023年5月29日
    00
  • vue实现一个单文件组件的完整过程记录

    下面是“vue实现一个单文件组件的完整过程记录”的攻略: 什么是单文件组件? 单文件组件是Vue.js的一个重要概念。所谓单文件组件,就是一个Vue组件被封装在一个独立的文件中,包括组件所需的模板、CSS样式和JavaScript代码。单文件组件的扩展名通常为.vue,这个文件可以被其他Vue组件或Vue实例引用和渲染,从而将组件保持独立和可复用。 基本结构…

    Vue 2023年5月28日
    00
  • vue-cli脚手架的安装教程图解

    下面是”vue-cli脚手架的安装教程图解”的完整攻略: 安装Node.js 首先,你应该安装Node.js。Node.js是一个JavaScript运行时环境,可以实现服务器端的JavaScript开发。 如果你还没有安装,可以从Node.js官网下载并安装:https://nodejs.org/ 安装vue-cli vue-cli是一个Vue.js项目的…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部