Vue之对数组和对象进行遍历和修改

Vue之对数组和对象进行遍历和修改

1、对数组进行循环
v-for进行循环,有两个参数(item,index)
注意:template可以成为占位符,在DOM里面不显示

2、 修改数组的时候,不能直接通过下标去增加修改删除,
(1)可以用过push/pop/shift/unshift/splice/sort/reverse方法
(2)也可以直接改变(重新定义)list数组的整体 (var list = [ ])
(3)全局的Vue.set(app7.list,1<此处代表下标>,2)
局部的app7.$set(app7.list,1<此处代表下标>,2)

3、对对象进行循环
v-for进行循环,有三个参数(item,index,key)

4、增加对象的时候,
(1)通过重新定义引用的对象 (var obj = { })
(2)set方法 全局的Vue.set(app7.obj,“sex”<此处代表要增加的属性>,“女”)
局部的app7.$set(app7.obj,“sex”<此处代表要增加的属性>,“女”)

<!-- v-for的使用 -->
    <div id="app7">
    // 对数组进行循环
        <template v-for="(item,index) of list" :key="item.id">
            <div>
                {{item.text}} ---- {{index}}
            </div>
            <span>
                {{item.text}} ---- {{index}}
            </span>
        </template>
        //对对象进行循环
        <template v-for="(item,index,key) of obj">
            <div>
                {{item}} ---- {{index}}-----{{key}}
            </div>
        </template>
    </div>
    <script>
            var app7 = new Vue({
            el: '#app7',
            data: {
                list: [
                    {
                        id: "1",
                        text: '1'
                    },
                    {
                        id: "2",
                        text: '2'
                    },
                    {
                        id: "3",
                        text: '3'
                    },
                ],
                obj: {
                    name: 'mao',
                    age: 28,
                    address: 'liulin'
                }
            }
        })
    </script>
Vue进行数组分组通常是通过计算属性(computed properties)或者方法(methods)来实现的。Vue的计算属性会缓存结果,只有当依赖的数据变化时才会重新计算,因此对于性能要求较高的场景更为适用。这里以计算属性的方式进行数组分组介绍如下: 1. 首先在Vue实例的`data`函数中定义原始数组。 2. 然后在`computed`对象中定义分组逻辑的函数。该函数会遍历原始数组,并根据特定属性将元素分到不同的组中。 3. 在模板中可以直接使用计算属性返回的分组结果。 例如,如果你有一个包含商品对象数组,每个商品对象都有一个`category`属性表示商品分类,你想要根据分类对商品进行分组,可以这样做: ```javascript new Vue({ el: '#app', data: { products: [ { name: 'Product A', category: 'Electronics' }, { name: 'Product B', category: 'Books' }, { name: 'Product C', category: 'Electronics' }, // ... 其他商品 ] }, computed: { groupedProducts() { const groups = {}; this.products.forEach(product => { const category = product.category; if (!groups[category]) { groups[category] = []; } groups[category].push(product); }); return groups; } } }); ``` 在HTML模板中,你可以这样使用计算属性返回的分组数据: ```html <div id="app"> <div v-for="(group, category) in groupedProducts" :key="category"> <h3>{{ category }}</h3> <ul> <li v-for="product in group" :key="product.name"> {{ product.name }} </li> </ul> </div> </div> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值