Vue 数组方法是否有响应式的效果

1.数组的方法包括增删改查,那么这些对数组的操作,界面上的数据到底是否还是有响应式的效果呢?
数组的push,pop,unshift,shift,sort,reverse,splice都是具有响应式的效果,但我们通过this.fruits[2]='c’这种方式修改,就没有达到响应式效果,如果是要修改数组元素的话,可以使用splice或者Vue.set来实现
例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="content">
    {{fruits}}<br>
    <button @click="btnClick">操作按钮</button>
</div>
<script src="./vue.js"></script>
<script>
    const content = new Vue({
        el: '#content',
        data: {
            fruits: ['apple','banana','peach','grape']
        },
        methods: {
            btnClick() {
                //1.往数组添加元素
                this.fruits.push('a','b')
                //2.移除元素
                this.fruits.pop()
                //3.往数组前面追加元素
                this.fruits.unshift('c','d')
                //4.从数组开头移除元素
                this.fruits.shift()
                //5.排序
                this.fruits.sort()
                //6.反转数组
                this.fruits.reverse()
                //7.splice方法
                //1)作为删除使用
                // 传入一个参数,从该索引位置开始往后的元素都删除
                this.fruits.splice(2)
                //传入两个参数,从该第一个参数索引位置开始,删除指定个数元素
                this.fruits.splice(2,1)
                //2)作为替换使用
                //传入三个参数,从第二个索引位置开始的第一个元素替换为a
                this.fruits.splice(2,1,'a')
                //传入四个参数,从第二个索引位置开始的两个元素依次替换成b和c
                this.fruits.splice(2,2,'b','c')
                //3)作为添加元素使用
                //传入三个参数,从第二个索引位置开始,添加元素
                this.fruits.splice(2,0,'e')
                //通过这一种方式,修改元素,页面的数据并不会做到响应式
                this.fruits[1] = 'egg'
                //以下两种方式,在修改数组的内容时,才会做到响应式
                this.fruits.splice(1,1,'egg')
                Vue.set(this.fruits,1,'egg')
            }
        }
    })
</script>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值