v-for 用法

v-for的几种用法

v-for =“site in sites” sites 是进行迭代的数组,site是迭代出的数据

1.迭代普通数组

<p v-for="site in sites">{{sites:name}}</P>
 <script>
        var  a = new Vue({
            el:".app",
            data:{
            
            sites:[
                    "dfdfdsfs",
                    "dfdfecccc",
                    "33333333"
                ]
                
            }   
        })
    </script>

2 . 迭代数字

<p v-for="n in 14 ">{{n}}</P>

3 迭代对象
迭代对象就是site中是迭代一对键值对

 <li v-for="(val,key) in sites">
                {{val}} {{key}}
            </li>

        </ul>
    </div>
    <script>
        var  a = new Vue({
            el:".app",
            data:{
                ok:false,
                sites:{
                    id:1,
                    name:'托尼.贾',
                    gender:'男'
                }

4 迭代对象数组

对象数组就是数组中的每一个元素都是类的对象

<li v-for="(user,i) in sites">
                {{user.id}} {{user.name}}
            </li>
             data:{
                ok:false,
                sites:[
                    {id:1, name:'zs1'},
                    {id:2, name:'zs2'},
                    {id:3, name:'zs3'},
                    {id:4, name:'zs4'},
                    {id:5, name:'zs5'},
                    {id:6, name:'zs6'},
                    ]
            }
        })

sites 数组名
{{}}中 user.id user 为对象形参

`v-for` 是 Vue.js 中用于循环渲染列表的一个指令。它允许我们通过遍历数组对象来动态地生成多个元素或组件实例。以下是关于 `v-for` 的详细介绍和一些常见用法示例: ### 基本语法 基本结构如下所示: ```vue <template> <ul> <!-- 遍历数组 --> <li v-for="(item, index) in items" :key="index">{{ item }}</li> <!-- 遍历对象的属性 --> <div v-for="(value, key, index) in object" :key="key"> {{ key }}: {{ value }} </div> </ul> </template> <script> export default { data() { return { // 数组示例 items: ['苹果', '香蕉', '橙子'], // 对象示例 object: { name: '张三', age: 25 }, }; } }; </script> ``` 在这里,`(item, index)` 表示当前迭代项及索引;对于对象而言 `(value, key, index)` 分别代表值、键名和索引。 ### 关键点说明 1. **唯一键 (`key`)** - 每个 `v-for` 循环都应该有一个唯一的 `key` 属性,这有助于 Vue 跟踪每个节点的身份以便高效更新 DOM。 ```html <li v-for="item in items" :key="item.id">{{ item.name }}</li> ``` 2. **范围数值** - 可以直接指定一个数字作为 `v-for` 的终点数,从 1 开始递增直到该数: ```html <span v-for="n in 10">这是第{{ n }}次迭代。</span> ``` 3. **处理复杂数据结构** 当遇到更复杂的嵌套列表时,你可以继续使用更多的 `v-for` 来完成多层遍历操作。例如: ```html <ul> <li v-for="category in categories" :key="category.id"> 类别名称:{{ category.title }} <ol> <li v-for="product in category.products" :key="product.id"> 商品名称:{{ product.name }}, 单价:¥{{ product.price }} </li> </ol> </li> </ul> ``` 4. **过滤与排序** - 如果你需要对数据进行筛选或者按特定条件排序后再显示出来,可以直接在 JavaScript 计算属性里先处理好数据再传递给模板,也可以利用 computed 属性来做这一工作。 ```javascript computed: { sortedItems() { return this.items.sort((a,b) => a.age - b.age); } } ``` 然后就可以像这样使用了: ```html <li v-for="item in sortedItems" :key="item.id">{{ item.name }}</li> ``` ### 最佳实践提示 - 尽量避免修改正在被 `v-for` 迭代的数据源本身,因为这可能会导致意外的行为。 - 使用计算属性(Computed Properties)、方法(Methods)或其他优化手段来预处理需要展示的数据集。 - 确保每次渲染都提供稳定的 `key` 给每一个元素,特别是当你打算添加动画过渡效果的时候这一点尤为重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值