『VUE』11. 操作数组的方法(详细图文注释)

文章讲述了在Vue中,操作数组时如何影响视图的渲染更新。重点介绍了会修改原数组的方法如push、pop等会触发渲染,而像slice、filter等不修改原数组的方法则不会。通过示例对比了直接修改原数组和创建新数组赋值的情况。
摘要由CSDN通过智能技术生成


欢迎关注 『VUE』 专栏,持续更新中
欢迎关注 『VUE』 专栏,持续更新中

vue中操作数组的方法

vue中数组数据呈现在网页,只检测一开始用到的数组的变化,比如你呈现数组a的数据,数据增加了个数,那么v-for也会随之更新,但如果是数组b变化,不会影响到数组a的更新.所以会不会修改原数组非常关键.

  • 说白了,只检测原来指定数组的变化.

会修改原数组的 会进行渲染更新

  • push():向数组末尾添加一个或多个元素。
this.items.push(newItem);
  • pop():移除数组中的最后一个元素。
this.items.pop();
  • shift():移除数组中的第一个元素。
this.items.shift();
  • unshift():向数组开头添加一个或多个元素。
this.items.unshift(newItem);
  • splice():从指定索引位置添加或移除元素。
// 从索引 1 开始删除 1 个元素,并插入新元素
this.items.splice(1, 1, newItem);

不修改原数组的 不会进行渲染更新

  • slice():返回数组的一部分,不修改原数组。
const newArray = this.items.slice(1, 3); // 返回索引 1 到索引 2 的子数组
  • filter():根据条件过滤数组并返回符合条件的新数组,不修改原数组。
const filteredArray = this.items.filter(item => item.id !== itemId);

push自动渲染

在这里插入图片描述


concat 赋值渲染

如果只是简单的concat
在这里插入图片描述

修改核心代码this.num1 = this.num1.concat(i);得到了新数组赋值给原来的数组,原来的数组变化,vue根据原数组渲染更新

<template>
  <h3>数组变化与UI更新</h3>
  <button @click="addArray">add直接修改原数组</button>
  <button @click="addArray2">add得到一个新的数组然后赋值给原数组</button>
  <div>
    <li v-for="item of num1">{{ item }}</li>
  </div>
</template>

<script>
export default {
  data() {
    return {
      num1: [1, 2, 3, 4, 5],
    };
  },
  methods: {
    addArray() {
      var i = this.num1[this.num1.length - 1] + 1; //取数组最后一个数的值,然后将这个值+1
      this.num1.push(i); //将i放入数组中,直接修改了原来的数组
      console.log("i", i, this.num1);
    },

    addArray2() {
      var i = this.num1[this.num1.length - 1] + 1; //取数组最后一个数的值,然后将这个值+1
      this.num1.concat(i); //将i放入数组中,得到了一个新的数组,但是原来数组不变,vue不会渲染更新
      this.num1 = this.num1.concat(i); //将i放入数组中,得到了新数组赋值给原来的数组,原来的数组变化,vue根据原数组渲染更新
      console.log("i", i, this.num1);
    },
  },
};
</script>

在这里插入图片描述


总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2024 mzh

Crated:2024-3-1

欢迎关注 『VUE』 专栏,持续更新中
欢迎关注 『VUE』 专栏,持续更新中
『未完待续』


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值