详解vuejs之v-for列表渲染

yizhihongxing

详解vuejs之v-for列表渲染

什么是v-for

v-for是Vue.js的一个内置指令,用于根据一个数组的数据来循环渲染动态列表。我们可以把v-for看作是Vue实现列表渲染的核心指令之一。

v-for基本语法

v-for的基本语法如下所示:

<div v-for="(item, index) in list">{{ item }}</div>
  • item:当前遍历的元素数据。
  • index:当前遍历的元素下标。
  • list:需要遍历的数组数据。

v-for数组更新

当数组的数据发生变化时,v-for也会跟着变化,自动更新视图。

<template>
  <div>
    <button @click="pushData">添加数据</button>
    <button @click="popData">删除数据</button>
    <ul>
      <li v-for="(item, index) in list" :key="index">{{ item }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: ['Apple', 'Banana', 'Orange']
    }
  },
  methods: {
    pushData() {
      this.list.push('Grape');
    },
    popData() {
      this.list.pop();
    }
  }
};
</script>

对象遍历

除了遍历数组,v-for同样可以遍历对象。

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

<script>
export default {
  data() {
    return {
      object: {
        name: 'Peter',
        age: 28,
        city: 'Shanghai'
      }
    }
  }
};
</script>

示例说明

我们以一个电影列表的案例来说明v-for的应用。我们需要先创建一个movies数组,用于存储电影列表,然后使用v-for指令进行遍历循环,最后将遍历后的结果渲染到页面上。

代码如下所示:

<template>
  <div>
    <h2>电影列表</h2>
    <ul>
      <li v-for="(movie, index) in movies" :key="index">
        <p>{{ movie.title }}</p>
        <p>{{ movie.year }}</p>
        <p>{{ movie.director }}</p>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      movies: [
        {
          title: 'The Shawshank Redemption',
          year: '1994',
          director: 'Frank Darabont'
        },
        {
          title: 'The Godfather',
          year: '1972',
          director: 'Francis Ford Coppola'
        },
        {
          title: 'The Godfather: Part II',
          year: '1974',
          director: 'Francis Ford Coppola'
        }
      ]
    }
  }
};
</script>

另外一个示例是我们可以根据数字数组生成相应数量的HTML元素。

<template>
  <div>
    <h2>生成HTML元素列表</h2>
    <ul>
      <li v-for="n in count" :key="n">{{ n }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 5
    }
  }
};
</script>

以上就是v-for的详细介绍和两个示例的说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解vuejs之v-for列表渲染 - Python技术站

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

相关文章

  • vant 时间选择器–开始时间和结束时间实例

    vant 时间选择器是一个基于Vue.js的组件库,其中包含了常用的时间选择器组件。下面就详细讲解vant 时间选择器的开始时间和结束时间实例的攻略。 一、引入组件 在使用 vant 时间选择器组件之前,需要先在项目中引入这个组件库。 <!– 引入样式文件 –> <link rel="stylesheet" href…

    Vue 2023年5月29日
    00
  • vue2.0的计算属性computed和watch的区别及各自使用场景解读

    Vue2.0的计算属性computed和watch的区别及各自使用场景解读 Vue2.0中,Vue实例提供了两种方法:computed和watch来追踪和响应状态变化。 计算属性computed 定义:computed是一个计算属性,其返回值依赖于其他的状态数据。computed属性默认只有getter方法,因此不可以修改。 示例 <template&…

    Vue 2023年5月29日
    00
  • vue.js实现仿原生ios时间选择组件实例代码

    下面就是“vue.js实现仿原生ios时间选择组件实例代码”的完整攻略。 一、需求分析 首先,我们需要明确该时间选择组件的需求。该组件应该具有以下几个特点: 类似原生 iOS 的时间选择器的样式; 可以选择小时、分钟; 通过点击取消和确认按钮,可以改变选择的时间; 可以通过外部传入初始时间; 选择时间后,应该将选择的时间通过事件回传给外部。 二、实现思路 经…

    Vue 2023年5月29日
    00
  • 如何在vue项目中使用UEditor–plus

    步骤1:安装UEditor 首先,我们需要安装UEditor及其附加组件。你可以通过以下命令来安装UEditor: npm i -S vue-ueditor-plus 这样就将UEditor安装到了你的项目中。 步骤2:在项目中注册组件 现在,我们需要在Vue组件中注册UEditor组件。在你的项目中,你需要创建一个UEditor组件,代码如下: <t…

    Vue 2023年5月27日
    00
  • Vue移动端实现图片上传及超过1M压缩上传

    OK,下面是“Vue移动端实现图片上传及超过1M压缩上传”的完整攻略: 1. 前置知识 在讲解具体实现过程之前,需要了解以下知识点: input 标签的 type=”file” 属性: 用于创建一个文件上传框,用于选择本地文件上传。当选择文件后,选择框会为文件生成一个 File 对象,用于后续操作。 canvas 标签和 canvas API: 用于在网页中…

    Vue 2023年5月28日
    00
  • mitt tiny-emitter发布订阅应用场景源码解析

    mitt tiny-emitter发布订阅应用场景源码解析 简介 mitt是一个基于JavaScript的简单、快速、可扩展的发布/订阅(pub/sub)库,适用于各种应用场景。它的基本思想是订阅者向一个发布者注册其感兴趣的事件类型,当该类型事件发生时,订阅者会被通知并执行其所定义的响应逻辑。这种解耦合的模式为开发者提供了良好的可维护性和扩展性。 mitt的…

    Vue 2023年5月28日
    00
  • 一键将Word文档转成Vue组件mammoth的应用详解

    一键将Word文档转成Vue组件Mammoth的应用详解 简介 Mammoth是一个将Word文档转换成HTML文档的Python工具。我们可以利用它将Word文档转换成Vue组件代码,在Vue项目中直接使用,这将大大提高前端人员的效率,减少手动编写Vue组件的时间。 步骤 以下是一步一步将Word文档转换成Vue组件的操作步骤: 1.安装Mammoth 在…

    Vue 2023年5月27日
    00
  • 详解Vue项目的打包方式(生成dist文件)

    下面是详解Vue项目的打包方式(生成dist文件)的完整攻略: 一、打包方式介绍 在Vue项目中,我们使用Webpack进行打包,将项目中的所有代码文件打包到一个或多个最终文件中,并生成dist文件夹。 Webpack是一个静态模块打包工具,它能将模块打包成适合浏览器或Node.js环境下使用的静态文件,如JavaScript、CSS、图片等。它使用了类似于…

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