Vue 3 基础笔记 5 | 青训营笔记

107 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 14 天,今天在开发组队大项目的过程中,继续学习了如何从头开发一个 Vue 3 的项目,包括 Vue 3 的基础语法等。

列表渲染

有时候我们可能需要重复渲染某个组件或者元素多次,Vue 为我们提供了列表渲染来方便我们的重复渲染工作。

v-for 指令用于数组

使用 v-for 指令可以基于一个数组来渲染一系列元素,每个数组项对应一个元素。

v-for 指令的基础用法为:

<li v-for="item in items">
  {{ item.message }}
</li>

v-for 指令中使用 item in items 形式的特殊语法。其中 items 为数据源,为一个数组。item 为每次迭代中数组元素的别名,在元素内可以通过 item 访问本次迭代的一个数组项。

可以使用 of 作为分隔符来替代 in

<div v-for="item of items"></div>

v-for 指令中还可以使用 (item, index) in items 形式的特殊语法。其中第二个参数 item 表示本次迭代的一个数组项的索引位置。

<li v-for="(item, index) in items">
  {{ parentMessage }} - {{ index }} - {{ item.message }}
</li>

v-for 指令用于对象

v-for 指令用于遍历对象时,可以使用 (value, key, index) in object 形式的特殊语法。Vue 会为每个键值对渲染一遍元素。

其中 value 为键值对中的别名,key 为键值对中的别名,index 为当前渲染的元素的索引

<li v-for="(value, key, index) in myObject">
  {{ index }}. {{ key }}: {{ value }}
</li>

v-for 指令用于整数值

v-for 可以直接接受一个整数值,Vue 会渲染这个元素整数值次。其中 n渲染次数的别名。注意此处渲染次数 n 的初值是从 1 开始而非 0

<span v-for="n in 10">{{ n }}</span>

<template> 标签上使用 v-for

在模板内部,可以使用 <template> 包裹多个标签,并在 <template> 标签上使用 v-for 指令。这些标签会一同重复渲染。渲染的结果中不会出现 <template> 标签。

v-forv-if 同时使用

不推荐。

v-forv-if 同时使用,则 v-if 优先级更高,会优先执行。也就是说,无法在 v-if 中访问 v-for 中定义的别名。

如果需要 v-forv-if 同时使用,需要将 v-for 应用在 <template> 标签上,然后使用 <template> 标签包裹原来的元素。

key 属性

v-for 通常需要搭配 key 属性来使用。

key 属性用来指定 v-for 渲染的每个元素的唯一标识。key 属性应该绑定一个数字或者字符串。