详解vuejs之v-for列表渲染

详解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日

相关文章

  • Vue3项目搭建的详细过程记录

    以下是Vue3项目搭建的详细过程记录: 步骤一:安装Node.js和npm Node.js和npm是Vue3项目开发所必需的基础环境,可以在官网下载安装。 步骤二:安装Vue CLI 4 在终端输入以下命令安装Vue CLI 4: npm install -g @vue/cli 等待安装完成后,输入以下命令检查Vue CLI是否成功安装: vue –ver…

    Vue 2023年5月27日
    00
  • 详解Puppeteer前端自动化测试实践

    详解Puppeteer前端自动化测试实践 引言 前端自动化测试作为保证前端代码质量的重要手段,在现在的前端开发中已经非常普遍。而Puppeteer作为谷歌官方出品的一款自动化测试工具,其强大的能力受到了越来越多前端从业者的青睐。本文将详细讲解如何使用Puppeteer实现前端自动化测试。 Puppeteer简介 Puppeteer是一个基于Node.js的库…

    Vue 2023年5月28日
    00
  • 关于vue中element-ui form或table lable换行的问题

    关于Vue中Element UI Form或Table Label换行的问题,可以采用下述两种方法: 使用自定义Label和El-tooltip 在Element UI的Form组件中,默认情况下,Label标签是不支持换行的。因此,可以采用自定义Label和El-tooltip的方式解决。 示例代码: <template> <el-for…

    Vue 2023年5月27日
    00
  • uni-popup手写菜鸟上门取件时间选择器

    Uni-popup是一个强大的弹出层组件,可以用于实现各种弹出窗口,包括选择器。本攻略将详细讲解如何使用uni-popup手写菜鸟上门取件时间选择器。 第一步:引入uni-popup组件 在页面中引入uni-popup组件,需要在<script>标签中添加如下代码: import uniPopup from ‘@/components/uni-p…

    Vue 2023年5月28日
    00
  • Vue中的v-for列表循环示例详解

    针对“Vue中的v-for列表循环示例详解”,下面给出完整的攻略: 一、什么是v-for? v-for是Vue.js提供的一个用于循环渲染页面的指令,它可以循环遍历数据,生成对应的DOM元素,并将其渲染到页面上。 常见场景: 在数据较多的情况下,使用v-for可以更加方便的渲染数据; 使用v-for可以控制生成的DOM元素,可以动态增删改变以及数据操作等。 …

    Vue 2023年5月29日
    00
  • vue实现列表的添加点击

    下面是关于如何使用Vue实现列表的添加点击的完整攻略。为了使内容更加易懂,我将分为以下几个部分进行讲解: Vue组件的创建 列表的初始化 实现添加点击功能 1. Vue组件的创建 首先,我们需要在Vue中创建一个组件用于显示列表,示例代码如下: <template> <div> <ul> <li v-for=&quo…

    Vue 2023年5月29日
    00
  • 关于Node.js中的JXcore打包示例

    下面就来详细讲解“关于Node.js中的JXcore打包示例”的完整攻略。 Node.js中的JXcore打包示例 简介 JXcore是一种基于Node.js的开源项目,主要用于将Node.js项目转化为独立的应用程序,支持Node.js的所有模块和API。使用JXcore可以将原本需要使用Node.js命令行执行的代码打包成二进制文件,方便部署和使用。 安…

    Vue 2023年5月28日
    00
  • JS实现的tab切换选项卡效果示例

    JS实现的tab切换选项卡效果是一种非常实用的UI交互实现方式,下面我来详细讲解一下这个效果的完整攻略。 准备工作 在实现这个效果之前,需要准备好以下几个内容: HTML结构 tab切换选项卡是基于HTML结构进行实现的,所以需要先准备好选项卡的基本HTML结构。一般来说,一个基本选项卡的HTML结构可能是这样的: <div class="t…

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