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

相关文章

  • 概述VUE2.0不可忽视的很多变化

    概述VUE2.0不可忽视的很多变化 Vue.js 2.0是一款非常流行的JavaScript框架,它的新版本带来了很多变化。以下是一些新特性和变化的完整攻略: 渐进渲染 Vue.js 2.0中引入了渐进渲染的概念。这意味着Vue现在可以立即渲染尽可能多的内容,而不是等待整个视图准备好之后再一次性渲染出来。这样可以加快首次渲染的速度,提高用户体验。 <t…

    Vue 2023年5月28日
    00
  • vue中对象的赋值Object.assign({}, row)方式

    在Vue中,我们经常需要对对象进行赋值。而Object.assign()是一个常用的对象赋值操作,尤其常用于实现浅拷贝。在Vue中,我们可以使用Object.assign({}, row)来实现浅拷贝,将row对象的所有属性和方法赋值给一个空对象。 以下是Object.assign()的基本语法: Object.assign(target, source1,…

    Vue 2023年5月28日
    00
  • 详解基于vue的服务端渲染框架NUXT

    详解基于 Vue 的服务端渲染框架 NUXT 什么是 NUXT? NUXT 是一个基于 Vue.js 的轻量级框架,利用它可以帮我们快速搭建一个服务端渲染(SSR)的应用程序。服务端渲染的优势在于可以提高应用程序的首屏渲染速度,提供更好的搜索引擎优化(SEO)。除此之外,NUXT 还封装了 Vue.js,提供了一些默认配置和功能,例如自动生成路由和静态资源的…

    Vue 2023年5月28日
    00
  • vue组件 非单文件组件的使用步骤

    使用vue组件的方法有两种:单文件组件和非单文件组件。 非单文件组件的使用步骤如下: 定义组件 定义非单文件组件有两种方法,一种是使用Vue.component()函数,另一种是使用全局的组件注册方法。 使用Vue.component()函数: Vue.component(‘my-component’, { template: ‘<div>{{ …

    Vue 2023年5月28日
    00
  • Vue如何实现组件间通信

    Vue 提供了很多种实现组件间通信的方案,包括组件属性、事件、自定义事件和全局事件总线等方法。我们可以根据具体情况来选择其中一种方案来解决组件间通信的问题。 组件属性 组件属性是一种比较简单的组件间通信的方式,它通过在父组件中绑定属性,在子组件中通过 props 属性来接收父组件中传递过来的数据。父组件可以将自己的数据传递到子组件中,而子组件只能被动地接收。…

    Vue 2023年5月29日
    00
  • vue3中使用router4 keepalive的问题

    请跟我一起详细了解“vue3中使用router4 keepalive的问题”的完整攻略。 什么是keep-alive <keep-alive>是Vue.js提供的一个内置组件,它用于缓存组件,可以防止组件重复渲染以提高性能。<keep-alive>的最常用法是动态地根据路由渲染不同的组件,例如: <template> &l…

    Vue 2023年5月27日
    00
  • vue如何将html内容转为图片并下载到本地

    要将HTML内容转换为图片并下载到本地,我们可以使用Vue的第三方库html2canvas。下面是这个完整攻略的具体步骤。 步骤一:安装依赖 首先,我们需要安装html2canvas库,可以通过npm安装或者使用CDN。这里我们以npm安装为例。 npm install html2canvas 步骤二:在Vue中使用 在Vue组件中,我们需要导入html2c…

    Vue 2023年5月28日
    00
  • Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )

    Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK) 什么是Vue服务端渲染和Vue浏览器端渲染 Vue服务端渲染(SSR)是指将Vue组件在服务器端先渲染成HTML字符串,然后再将该HTML字符串发送给浏览器进行解析和渲染的过程。Vue服务端渲染可以极大地提高首屏渲染速度,同时对于SEO也有一定的优化作用。 Vue浏览器端渲染(CSR)是指使用浏览器…

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