Vue 3中v-for使用详解

Vue 3中的v-for指令是用来循环渲染数组或对象的,它可以在模板中快速的将数组或对象的数据渲染成视图。本文将从多个方面详细阐述Vue 3中v-for的使用方法。

一、Vue3中v-for循环数组

Vue3中v-for指令可以循环遍历一个数组,将数组中的每一个数据渲染到模板中。在循环中,我们可以用`v-for`指令的第二个参数`index`来获取当前循环的下标。


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


import { reactive } from 'vue';

export default {
  setup() {
    const items = reactive(['apple','banana','cherry','durian']);
    return { items };
  }
}
</script>

上面的代码中,我们先通过`reactive`定义了一个名为`items`的响应式数组,数组中包含了四个水果,然后在模板中使用`v-for`循环遍历数组。在循环中,我们可以通过`item`来获取数组中当前循环的值,通过`index`来获取当前循环的下标,最后将下标和数组中的值渲染到模板中。注意,在循环中需要设置`key`属性来保证循环的正确性。

二、Vue3中v-for循环不了reactive

在Vue3中,由于reactive是一个函数,所以我们不能使用v-for指令对它进行循环遍历,如果想要循环遍历reactive,可以先将其通过`toRefs`解构成一个普通的对象,然后再进行循环遍历。


<template>
  <div v-for="(item,key) in data" :key="key">
    {{key}} -- {{item}}
  </div>
</template>

<script>
import { ref, reactive, toRefs } from 'vue';

export default {
  setup() {
    const state = reactive({ count: 0 });
    const data = toRefs(state);
    return { data };
  }
}
</script>

在上面的代码中,我们创建了一个reactive对象`state`,然后使用`toRefs`函数将其解构成一个普通的对象`data`,最后在模板中使用`v-for`循环遍历`data`,并将每一个数据渲染到视图中。

三、Vue3中v-for拿到子组件实例

在Vue3中,我们可以通过`v-for`指令将一个数组的数据循环渲染到多个子组件中,并且可以在子组件中访问到对应的数据。为了方便说明,我们这里以一个简单的计数器组件为例:


// Counter.vue
<template>
  <div>
    <button @click="increment">+</button>
    {{ count }}
  </div>
</template>

<script>
import { reactive } from 'vue';

export default {
  setup() {
    const state = reactive({ count: 0 });
    const increment = () => state.count++;
    return { ...state, increment };
  }
}
</script>


// App.vue
<template>
  <div v-for="(item,index) in items" :key="index">
    <Counter :count="item" :key="index"></Counter>
  </div>
</template>

<script>
import Counter from './Counter.vue'
import { reactive } from 'vue';

export default {
  components: { Counter },
  setup() {
    const items = reactive([1, 2, 3, 4]);
    return { items };
  }
}
</script>

在上面的代码中,我们通过`v-for`指令将一个数组`items`循环渲染到了Counter组件中,并且将循环的每一个值都通过props的形式传递给了Counter组件。Counter组件内部通过`props`获取到了数组中当前循环的值,并将其渲染到视图中。由于每次循环都会创建一个新的Counter组件实例,因此我们需要设置`key`属性来保证循环的正确性。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/270189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-16 13:36
下一篇 2024-12-16 13:36

相关推荐

  • Python for循环求1到100的积

    Python中的for循环可以方便地遍历列表、元组、字典等数据类型。本文将以Python for循环求1到100的积为中心,从多个方面进行详细阐述。 一、for循环语法 Pytho…

    编程 2025-04-29
  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • Python使用for循环打印99乘法表用法介绍

    本文介绍如何使用python的for循环语句来打印99乘法表,我们将从需要的基本知识、代码示例以及一些加强版来详细讲解。 一、基础知识 在学习如何使用for循环打印99乘法表之前,…

    编程 2025-04-29
  • Vue TS工程结构用法介绍

    在本篇文章中,我们将从多个方面对Vue TS工程结构进行详细的阐述,涵盖文件结构、路由配置、组件间通讯、状态管理等内容,并给出对应的代码示例。 一、文件结构 一个好的文件结构可以极…

    编程 2025-04-29
  • Python for循环优化

    本文将介绍如何对Python中的for循环进行优化。 一、使用range()代替直接迭代 Python中的for循环本质上是一种迭代操作,可以对列表、元组、集合等数据结构进行遍历。…

    编程 2025-04-28
  • in和for的用法区别

    对于Python编程中的in和for关键词,我们在实际编码中很容易混淆。本文将从多个方面详细阐述它们的用法区别,帮助读者正确使用in和for。 一、in关键词 in是用来判断一个元…

    编程 2025-04-28
  • Vue3的vue-resource使用教程

    本文将从以下几个方面详细阐述Vue3如何使用vue-resource。 一、安装Vue3和vue-resource 在使用vue-resource前,我们需要先安装Vue3和vue…

    编程 2025-04-27
  • ThinkPHP6 + Vue.js: 不使用Fetch的数据请求方法

    本文将介绍如何在ThinkPHP6和Vue.js中进行数据请求,同时避免使用Fetch函数。 一、AJAX:XMLHttpRequest的基础使用 在进行数据请求时,最基础的方式就…

    编程 2025-04-27
  • Vue模拟按键按下

    本文将从以下几个方面对Vue模拟按键按下进行详细阐述: 一、Vue 模拟按键按下的场景 在前端开发中,我们常常需要模拟按键按下的场景,比如在表单中填写内容后,按下“回车键”提交表单…

    编程 2025-04-27
  • 开发前端程序,Vue是否足够?

    Vue是一个轻量级,高效,渐进式的JavaScript框架,用于构建Web界面。开发人员可以使用Vue轻松完成前端编程,开发响应式应用程序。然而,当涉及到需要更大的生态系统,或利用…

    编程 2025-04-27

发表回复

登录后才能评论