Vue3入门指北(六)列表渲染

简介: Vue3入门指北(六)列表渲染

前言


当我们有一个基于数组的列表数据,想让他在模板中进行渲染时,vue提供了一个v-for指令,来让我们进行遍历操作,你可以把他理解为JavaScript中的for循环。指令的值 为item in items的形式,其中items是数据源,而item则是迭代的对象。

当然我们也可以写成item of items的形式,着也更解决 迭代器的语法,这也是 vue 官方更推荐的。


<div v-for="item of items"></div>
复制代码


v-for 与 v-if


当然,有可能某些场景下,我们需要v-forv-if一起连用。但这vue官方并不推荐,并且二者的优先级不同,v-if的优先级更高,也就意味着v-if指令内无法访问到v-for中定义的迭代项。


<template v-for="item in items">
  <li v-if="!item">
    {{ item }}
  </li>
</template>
复制代码


这个时候我们就可以通过template标签上v-for来解决这个问题。


v-for中的key


当我们通过v-for指令迭代数据的时候,我们可以给每个标签上添加一个key属性。这么做的好处是,当数据源发生更新的时候,vue可以通过key更好的跟踪每个节点,从而更好的重排页面的元素,当然,key值必须是唯一的。


<div v-for="item in items" :key="item.id">
  <!-- 内容 -->
</div>
复制代码


数组的方法


当你定义了一个响应式的数组的时候,你可能会对数组进行相应的操作,而对于一些数组的方法,vue做了监听处理。


当如下方法被调用时,会对调用它们的原数组进行变更:


  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()


而相应的,也有一些不会变更原数组内容的方法,他们会返回一个新的数组。例如:filter()concat()slice(),这些方法在某些场景下尤为好用。

相关文章
|
18天前
vue3学习(3)
vue3学习(3)
|
15天前
|
JavaScript API
Vue3中的计算属性能否动态修改
【9月更文挑战第5天】Vue3中的计算属性能否动态修改
49 10
|
8天前
|
JavaScript
Vue3中路由跳转的语法
Vue3中路由跳转的语法
111 58
|
11天前
|
前端开发
vue3+ts项目中使用mockjs
vue3+ts项目中使用mockjs
216 58
|
1天前
|
存储 API
vue3中如何动态自定义创建组件并挂载
vue3中如何动态自定义创建组件并挂载
|
7天前
|
JavaScript 索引
Vue 2和Vue 3的区别以及实现原理
Vue 2 的响应式系统通过Object.defineProperty来实现,它为对象的每个属性添加 getter 和 setter,以便追踪依赖并响应数据变化。
22 9
|
8天前
|
JavaScript 开发工具
vite如何打包vue3插件为JSSDK
【9月更文挑战第10天】以下是使用 Vite 打包 Vue 3 插件为 JS SDK 的步骤:首先通过 `npm init vite-plugin-sdk --template vue` 创建 Vue 3 项目并进入项目目录 `cd vite-plugin-sdk`。接着,在 `src` 目录下创建插件文件(如 `myPlugin.js`),并在 `main.js` 中引入和使用该插件。然后,修改 `vite.config.js` 文件以配置打包选项。最后,运行 `npm run build` 进行打包,生成的 `my-plugin-sdk.js` 即为 JS SDK,可在其他项目中引入使用。
|
9天前
|
JavaScript 开发者
彻底搞懂 Vue3 中 watch 和 watchEffect是用法
彻底搞懂 Vue3 中 watch 和 watchEffect是用法
|
15天前
|
JavaScript API
如何使用Vue3的可计算属性
【9月更文挑战第5天】如何使用Vue3的可计算属性
44 13
|
6天前
|
JavaScript 调度
Vue3 使用 Event Bus
Vue3 使用 Event Bus
11 1