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

目录

    • vue中操作数组的方法
      • 会修改原数组的 会进行渲染更新
      • 不修改原数组的 不会进行渲染更新
    • push自动渲染
    • concat 赋值渲染
    • 总结


欢迎关注 『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』 专栏,持续更新中
『未完待续』


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/517291.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android 系统大致启动流程

Android启动流程大体为&#xff1a;BootRom -> BootLoader -> Kernel -> Init -> Zygote -> SystemServer ->Launcher 1、Loader层 1.1、Boot ROM 电源按下&#xff0c;引导芯片代码开始从预定义的地方&#xff08;固化在ROM&#xff09;开始执行&#xff0…

通讯录(顺序表)保存数据

在通讯录的基础上加上三个函数实现数据的保存。 分别为录入数据&#xff0c;加入数据与保存数据。 加入数据 先检查通讯录空间是否足够&#xff0c;然后将结构体ab中的数据全部放入通讯录mn中。 注意&#xff1a;字符串的拷贝要使用函数strcpy而不能直接用 加入完成之后将通…

速通数据结构与算法第五站 栈队列

系列文章目录 速通数据结构与算法系列 1 速通数据结构与算法第一站 复杂度 http://t.csdnimg.cn/sxEGF 2 速通数据结构与算法第二站 顺序表 http://t.csdnimg.cn/WVyDb 3 速通数据结构与算法第三站 单链表 http://t.csdnimg.cn/cDpcC 4 速通…

unity学习(82)——profiler 限制帧率

实际测试发现当玩家个数增加时&#xff0c;客户端明显变的很卡&#xff0c;想知道为什么变卡了&#xff01; 1.只有玩家自己的时候 2.两个时候感觉脚本的工作量增大了 拖了一会直接炸了&#xff01;&#xff08;数据包积压把内存搞炸&#xff0c;我第一次见&#xff09; 3.我觉…

Flutter 画笔(Paint)、绘制直线(drawLine)

override bool shouldRepaint(CustomPainter oldDelegate) > true; } class MyPainter extends CustomPainter { override void paint(Canvas canvas, Size size) { //画背景 var paint Paint() …isAntiAlias false …strokeWidth30.0 …color Colors.red; c…

Loss【1】:Focal Loss

系列文章目录 文章目录 系列文章目录前言1. 什么是 Focal Loss2. 逐过程解析 Focal Loss3. Focal Loss 的 PyTorch 实现总结 前言 类别不平衡是一个在目标检测领域被广泛讨论的问题&#xff0c;因为目标数量的多少在数据集中能很直观的体现。同时&#xff0c;在分割中这也是一…

【C++STL详解 —— vector的模拟实现】

CSTL详解 —— vector的模拟实现 vector各函数接口总览vector当中的成员变量介绍默认成员函数**构造函数1&#xff1a;****构造函数2****构造函数3****拷贝构造函数**赋值运算符重载函数 迭代器相关函数begin和end 容量和大小相关函数size和capacityreserveresizeempty 修改容器…

spring boot后端controller中接收表单参数校验

校验分为两部分&#xff0c;一部分是前端的输入时就校验&#xff0c;一部分时后端接收参数时的校验。本文提到的是后端接收参数时的校验。这个后端校验的存在有什么意义呢&#xff1f; 比如我们设置前端在输入参数时限制输入不能为空&#xff0c;应该为3-20位非空字符&#xf…

ENSP华为防火墙WEB登录操作指南

ENSP华为防火墙WEB登录操作指南 华为防火墙登录WEB 1、华为防火墙配置&#xff1a;&#xff08;需要在互联接口下放通https和ping&#xff09; int g0/0/0 service-manage https permit service-manage ping permit 2、电脑需要配置虚拟网卡 3、虚拟网卡与云和防火墙配置的IP地…

JDK类加载器剖析

0.前言 我之所以深入研究 Java 类加载器&#xff0c;是为了解决一个奇怪的问题。流行出版物&#xff0c;也就是人们所认为的 Java 世界的灯塔&#xff0c;充斥着关于这个主题的相互矛盾和过时的信息。这种矛盾引发了我的调查 — — 在 Java 类加载器的迷宫中寻求清晰的答案。 …

音视频开发之旅(81)- 图片视频“黑边”检测与去除

目录 1.“黑边“的场景 2. 二值化--单一颜色边缘的图像 3. canny边缘检测霍夫直线变换--处理负责的边缘图像 4. 性能优化 5. 资料 在页面展示中&#xff0c;如果图片/视频有黑边&#xff0c;比较影响体验&#xff0c;我我们今天实现下对图片/视频进行黑边检测。检测到黑边…

校招说明书

3400字的详细说明&#xff0c;介绍了程序员类岗位校招的整体时间节点和招聘流程。还对一些常见的问题进行讨论&#xff0c;例如内推、offer和三方、实习等。 第一章介绍基本的术语&#xff0c;第二章介绍整个校招的重要流程及时间点&#xff0c;然后第三章介绍每次招聘要经过的…

网络:HTTP协议

目录 序列化与反序列化 守护进程 网络计算器的实现 HTTP协议 http的代码演示 HTTPS 初步理解三次握手&#xff0c;四次挥手 ①tcp是面向连接的通信协议&#xff0c;在通信之前&#xff0c;需要进行3次握手&#xff0c;来进行连接的建立(谁connect谁握手) ②当tcp在断开…

《软件方法》剖析“提灯定损”,金将军和南丁格尔

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 这几天&#xff0c;江西出了“提灯定损”事件&#xff0c;成为“周公子”、“指鼠为鸭”之后的又一个大IP。 我也蹭一下这个IP&#xff0c;谈一谈软件开发中的业务建模和需求。 图1 “…

git上传到本地仓库

摘要&#xff1a;本地初始化init仓库&#xff0c;进行pull和push&#xff1b;好处是便于利用存储设备进行git备份 git init --bare test.git 随便到一个空的目录下git clone 然后使用git上传 把git仓库删除之后再clone一次验证一下是否上传成功&#xff1a; 如果在ubantu上面没…

实用技巧:如何取消app的截屏禁用

因为我想要在小鹅通App做笔记,但是被小鹅通App禁用截屏了,这真是一个很糟糕的使用体验,虽然可能是为了保护商家权益…… 方法1 可以让商家设置课程可以截屏 方法2 手机root,安装Xposed框架,利用Xposed框架上面的插件我们可以对手机进行高度定制化,而安装Xposed框架的…

Emacs之实现复制当前已打开文件buffer(一百三十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【嵌入式智能产品开发实战】(十六)—— 政安晨:通过ARM-Linux掌握基本技能【Linux shell揭秘】

目录 简述 开始 深入探究Linux内核 1.系统内存管理 2.软件程序管理 3.硬件设备管理 4.文件系统管理 GNU实用工具 1.核心GNU实用工具 2.shell Linux桌面环境 1.X Window软件 2.KDE Plasma桌面 3.GNOME桌面 4.其他桌面 Linux发行版 核心Linux发行版 特定用途的…

卷积篇 | YOLOv8改进之引入全维度动态卷积ODConv | 即插即用

前言:Hello大家好,我是小哥谈。ODConv是一种关注了空域、输入通道、输出通道等维度上的动态性的卷积方法,一定程度上讲,ODConv可以视作CondConv的延续,将CondConv中一个维度上的动态特性进行了扩展,同时了考虑了空域、输入通道、输出通道等维度上的动态性,故称之为全维度…

在一套Dockerfile中完成编译和运行环境部署

大纲 解释型语言编译环境解释环境编译型语言编译环境运行环境 方法编译环境安装系统安装编译依赖下载代码特殊处理&#xff08;可以忽略&#xff09;编译准备&#xff08;可以忽略&#xff09;编译打包依赖&#xff08;编译结果&#xff09; 运行环境安装操作系统安装运行时依赖…