每日鸡汤:我们不会比今天更年轻了
目录
本篇文章对应官网【列表渲染】,实际就是使用v-for循环。
在for循环的时候使用解构,我倒是很少用,以后可以用起来
- <template>
- <div>
- <div v-for="{ name, id } in data" :key="id">{{ name }}div>
- div>
- template>
- <script lang="ts" setup>
- import { ref } from 'vue'
-
- const data = ref([
- {
- id: 1,
- name: 'cat',
- age: '1',
- },
- {
- id: 2,
- name: 'dog',
- age: '12',
- },
- ])
- script>
一般编辑器都要求在使用v-for的时候给元素绑定key,这是因为在dom更新的时候(虚拟dom进行diff)key起着很大的作用。
官网这部分有提到
key这个特殊的 attribute 主要作为 Vue 的虚拟 DOM 算法提示,在比较新旧节点列表时用于识别 vnode。
vue官网说
你也可以使用
of作为分隔符来替代in,这更接近 JavaScript 的迭代器语法:
所以你有必要了解一下什么是迭代器
要成为可迭代对象, 一个对象必须实现 @@iterator 方法。这意味着对象(或者它原型链上的某个对象)必须有一个键为 @@iterator 的属性,可通过常量 Symbol.iterator 访问该属性
Array、Map是可迭代对象,object不是可迭代对象。
v-for的使用,记住,适合对象、数组、数字,需要绑定key。