Vue for v-for

内容来自于网络:

 

Vue for v-for

2.x版本:
v-for="(item,index) in items"
index即索引值。

====================================================

理解v-for="( item, index) in items"的基本用法?:
v-for是Vue中的一个指令,用于基于源数据多次渲染元素或模板块。在v-for="(item, index) in items"中,items是一个数组或对象,item是当前迭代到的元素的值,index是当前迭代到的元素的索引(位置)

====================================================

使用v-for="(item, index) in items"就可以将数组对象中的数据循环输出。

JavaScript:

let vm = new Vue({
  el: '#app', // 根元素或挂载点。
  data: {
    users: [ 将数组 中的数据循环
      { name: 'lee', password: '123456' },
      { name: 'zhangsan', password: '654321' },
      { name: 'lisi', password: '111111' },
    ],
    usersObj: { 将对象中的数据循环
      lee: '123456',
      zhangsan: '654321',
      lisi: '111111'
    }
  }
})
 

HTML:

<div id="app">
  <ul>
    <li v-for="(item, index) in users" :key="index">
      {{index}}.
      用户名:{{item.name}}
      密码:{{item.password}}
    </li>
  </ul>
  <ol>
    <li v-for="(value, key) in usersObj" :key="index">
      用户名:{{key}}
      密码:{{value}}
    </li>
  </ol>
</div>
                       
原文链接:https://blog.csdn.net/chencl1986/article/details/84844061

====================================================

v-for指令循环字符串、数字

v-for指令除了常规循环数组、对象外,还可以循环字符串数字,需要注意的是,循环数字时默认从1开始

JavaScript:

let vm = new Vue({
  el: '#app', // 根元素或挂载点。
  data: {
    str: 'Vuejs Tutorial'
  }
})
 

HTML:

<div id="app">
  <ul>
    <li v-for="(item, index) in str" :key="index"> 循环字符串
      {{item}}
    </li>
  </ul>
  <ul>
    <li v-for="index in 10" :key="index"> 循环数字,循环数字时默认从1开始。
      {{index}}
    </li>
  </ul>
</div>
 
原文链接:https://blog.csdn.net/chencl1986/article/details/84844061

====================================================

 

两种方式
第一种方式

通过 v-for 指令可以从数组中循环获取数据并渲染,语法格式如下:

v-for="item in list"

    item 表示当前正在遍历的对象;
    in 是固定语法,表示对 list 数组进行遍历;
    list 表示被遍历的数组。

第二种方式

还有另外一种遍历方式,可额外获取当前索引下标。语法格式如下:

v-for="(item, index) in list" :key="index"

其中,index 为被遍历数组的当前索引值。:key="index" 可为每项提供一个唯一 key 属性,目的是为了方便的跟踪每个节点,这对重用和重新排列现有元素非常有帮助。

注:

在遍历数组时可以在元素中绑定一个key,key=数组值
绑定key的作用 :

    主要是为了高效的更新虚拟DOM。(vue内部;让性能高一点)
    当某一层有很多相同的节点时,也就是列表节点时,我们希望插入一个新的节点,则Diff算法默认执行起来是比较复杂的。(一个个重新替换)但绑定key后,可以使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点,找到正确的位置区插入新的节点。



    <template>
      <div>
        <div v-for="index in 5" :key="index">
          {{ index }}
        </div>
      </div>
    </template>

v-for遍历数组
1. 仅使用项

如果你不需要索引,可以只获取当前项。

    <template>
      <ul>
        <li v-for="item in items" :key="item.id">
          {{ item.name }}
        </li>
      </ul>
    </template>
     
    <script>
    export default {
      data() {
        return {
          items: [
            { id: 1, name: 'Apple' },
            { id: 2, name: 'Banana' },
            { id: 3, name: 'Cherry' }
          ]
        };
      }
    };
    </script>

在这个例子中,v-for="item in items" 表示我们只获取了数组中的每一项(item)。同样,:key="item.id" 确保了每个列表项都有一个唯一的键值。

呈现:

    上面的id是作为key属性的值自动添加的,Vue使用这个id来跟踪每个列表项的状态和身份。在实际的Vue应用中,你通常不会看到这些id直接显示在渲染的HTML中,因为它们是Vue内部使用的。但是,它们对于Vue的DOM更新算法来说是非常重要的,因为它们帮助Vue识别哪些元素改变了、添加了或者被移除了。

2. 使用索引和项

这种方式在遍历数组时同时提供了当前项(item)和它的索引(index)。
例子:

    <template>
      <ul>
        <li v-for="(item, index) in items" :key="item.id">
          {{ index }}: {{ item.name }}
        </li>
      </ul>
    </template>
     
    <script>
    export default {
      data() {
        return {
          items: [
            { id: 1, name: 'Apple' },
            { id: 2, name: 'Banana' },
            { id: 3, name: 'Cherry' }
          ]
        };
      }
    };
    </script>

在这个例子中,v-for="(item, index) in items" 表示我们同时获取了数组中的每一项(item)和它的索引(index)。:key="item.id" 确保了每个列表项都有一个唯一的键值。
呈现:

渲染效果分析

这段Vue代码会在页面上渲染出一个包含三个列表项的无序列表,每个列表项显示数组items中对象的索引和名称。渲染的是一个无序列表(<ul>),并且列表项的索引从0开始。

    <ul>
      <li>0: Apple</li>
      <li>1: Banana</li>
      <li>2: Cherry</li>
    </ul>

    为何为无序列表 (<ul>)?

        HTML结构:在Vue模板中,我们使用了<ul>标签来定义列表的容器。在HTML中,<ul>代表无序列表,这意味着列表项不会自动编号。

        Vue.js 渲染:Vue.js 通过将模板编译成渲染函数,然后根据组件的响应式数据生成虚拟DOM。在这个过程中,Vue.js 会将<ul>和<li>标签转换为虚拟节点,然后这些虚拟节点会被渲染成实际的DOM元素。

    为何从0开始?

        JavaScript 数组索引:在JavaScript中,数组索引是从0开始的。这意味着数组的第一个元素的索引是0,第二个元素的索引是1,依此类推。在Vue.js的v-for指令中,当使用(item, index) in items语法时,index变量会自动被设置为当前数组元素的索引,这就是为什么列表项的索引从0开始。

        Vue.js 渲染:在模板中,我们使用了插值表达式{{ index }}来显示每个列表项的索引。由于索引是从0开始的,所以渲染出来的列表项也会从0开始显示。

v-for遍历对象

        键(key):是对象属性的名称,用于唯一标识对象中的每个条目。在对象字面量中,键通常是由字符串或符号组成的,它们是不可变的且唯一的。

        值(value):与每个键相关联的数据。值可以是任何类型,包括数字、字符串、对象、数组等。

1.只遍历对象的值

用value值

    在Vue中使用v-for遍历对象时,与数组不同,对象并没有默认的“索引”概念。对象的键(keys)通常用作唯一标识符,因此在使用v-for遍历对象时,应该使用对象的键作为key值。

    <template>
      <div>
        <ul>
          <li v-for="value in object" :key="value">
            {{ value }}
          </li>
        </ul>
      </div>
    </template>
     
    <script>
    export default {
      data() {
        return {
          object: {
            a: 'Apple',
            b: 'Banana',
            c: 'Cherry'
          }
        };
      }
    };
    </script>

呈现:

    这里,v-for="value in object" 会遍历对象的所有值。
    由于对象的键不用于渲染,因此没有提供键值。在这种情况下,Vue会使用默认的键值,即数组索引。
    每个列表项显示对象的值。

2.遍历对象的键和值

遍历对象属性和属性值 用value值和key

    <template>
      <div>
        <ul>
          <li v-for="(value, key) in object" :key="key">
            {{ key }}: {{ value }}
          </li>
        </ul>
      </div>
    </template>
     
    <script>
    export default {
      data() {
        return {
          object: {
            name: 'Vue.js',
            version: '2.6.12',
            creator: 'Evan You'
          }
        };
      }
    };
    </script>

呈现:

分析:

    v-for="(value, key) in object" 会遍历对象的每一对键值对。
    :key="key" 使用对象的键作为唯一键值,这对于Vue的虚拟DOM差异比较算法是必要的。
    每个列表项显示对象的键和值。

3.遍历对象的键、值和索引

遍历对象属性和属性值和索引 用value值、key和index

    <template>
      <div>
        <ul>
          <li v-for="(value, key, index) in object" :key="key">
            {{ index }}: {{ key }} - {{ value }}
          </li>
        </ul>
      </div>
    </template>
     
    <script>
    export default {
      data() {
        return {
          object: {
            first: 'Apple',
            second: 'Banana',
            third: 'Cherry'
          }
        };
      }
    };
    </script>

呈现:

分析:

    v-for="(value, key, index) in object" 会遍历对象的每一对键值对,并且提供索引。
    :key="key" 使用对象的键作为唯一键值。
    每个列表项显示对象的索引、键和值。
————————————————
                       
原文链接:https://blog.csdn.net/2301_80089510/article/details/141644613

====================================================

使用Object.keys()Object.values()Object.entries()

这些方法可以帮助我们获取对象的键、值或键值对,然后通过v-for指令进行遍历。

 

====================================================

posted @ 2025-04-14 21:30  emanlee  阅读(107)  评论(0)    收藏  举报