VUE(3)——循环

<body>
    <div id="app">
        <ul>
            <template v-for="site in sites">
                <li>{{site.name}}</li>
                <li>---</li>
            </template>
        </ul>
        <br>
        <!--v-for迭代对象-->
        <ul>
            <li v-for="value in object">
                {{value}}
            </li>
        </ul>
        <br>
        <!--第二个参数为键名-->
        <ul>
            <li v-for="(value,key) in object2">
                {{key}}:{{value}}
            </li>
        </ul>
        <!--第三个参数为索引-->
        <ul>
            <li v-for="(value,key,index) in object2">
                {{index}}.{{key}}:{{value}}
            </li>
        </ul>
        <br>
        <!--v-for迭代整数-->
        <ul>
            <li v-for="n in 10">
                {{n}}
            </li>
        </ul>
    </div>
    <script src="../js/vue.js"></script>
    <script>
        var vm=new Vue({
            el:"#app",
            data:{
                sites:[
                    {name:'ranboo'},
                    {name:'study'},
                    {name:'learn'}
                ],
                object:{
                    name:'菜鸟教程',
                    url:'www.baidu.com',
                    slogan:'好好学习'
                },
                object2:{
                    name:'菜鸟教程',
                    url:'www.baidu.com',
                    slogan:'好好学习'
                }
            }
        })
    </script>
</body>
### Vue3 中 `v-for` 指令的使用 #### 基本概念 `v-for` 是 Vue.js 提供的一个指令,用于基于一组数据来渲染列表。它支持多种类型的迭代操作,包括数组、对象以及特定范围内的数值。其语法通常采用 `(item, index) in items` 或者 `(value, key) of object` 的形式[^1]。 #### 循环普通数组 对于普通的 JavaScript 数组,可以利用 `v-for="item in items"` 来遍历并显示每一项的内容。以下是具体的实现方式: ```vue <template> <ul> <li v-for="(item, index) in items" :key="index"> {{ item }} </li> </ul> </template> <script> export default { data() { return { items: [&#39;苹果&#39;, &#39;香蕉&#39;, &#39;橙子&#39;] }; } }; </script> ``` 上述代码展示了如何通过绑定一个名为 `items` 的数组到模板中,并使用 `v-for` 将每个元素作为 `<li>` 列表项呈现出来。这里还引入了一个重要的属性 `:key`,用来为每一个节点赋予唯一的标识符以便于优化性能和追踪变化[^2]。 #### 处理对象集合 除了简单的数组外,还可以用 `v-for` 遍历键值对组成的对象结构。下面是一个例子说明这一功能的应用场景: ```vue <template> <ul> <li v-for="(value, key, index) in obj" :key="key"> {{ `${key}: ${value}` }} </li> </ul> </template> <script> export default { data() { return { obj: { name: &#39;张三&#39;, age: 28, city: &#39;北京&#39; } }; } }; </script> ``` 在这个实例里,我们不仅获取到了对象中的值 (`value`) 和对应的键名 (`key`) ,同时也得到了当前项目的索引号(`index`) 。这使得开发者能够更加灵活地控制输出格式[^3]。 #### 更新策略与注意事项 需要注意的是,默认情况下 Vue 使用一种叫做 **“就地更新”** 的机制处理由 `v-for` 所产生的 DOM 节点序列。这意味着即使原始数据发生了重排列或其他变动,只要可能的话,框架都会尝试保留现有的 HTML 元素而不做任何实际意义上的移除或新增动作。这种做法虽然提高了效率,但在某些特殊场合下可能会引发意想不到的行为问题 —— 特别是在那些依赖内部状态维护逻辑的地方(比如带有交互性的控件)[^3]。 因此,在开发过程中如果遇到因重复使用的同一份标记而导致的状态丢失现象,则应该考虑给定唯一稳定的 `key` 属性值以协助虚拟 DOM 更精确地区分各个独立单元之间的差异性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值