Vue、js底层深入理解笔记

news2024/11/25 4:52:44

文章目录

  • 1. Vue中列表组件的key值有什么作用?
  • 2. ['1', '2', '3'].map(parseInt)结果

1. Vue中列表组件的key值有什么作用?

这个是修改数组的情况下
在这里插入图片描述
还有增删的情况下 删除12,添加67
在这里插入图片描述

结果
带key的dom节点发生改变,内容未改变
不带key的 内容发生改变,节点未改变

不带key
节点不发生改变内容改变可能不会产生过渡效果,key的应用一般都是动画相关, 那一块节点重新生成, 这样动画就可以生效了.,或者在某些节点有绑定数据(表单)状态,会出现状态错位

key的好处
1.更准确
2.更快

key的作用就是更新组件时判断两个节点是否相同。相同就复用,不相同就删除旧的创建新的。 更准确

Vue/React都是采用diff算法来对比新旧虚拟节点,从而更新节点。
当新节点跟旧节点头尾交叉对比没有结果时,会根据新节点的key去对比旧节点数组中的key,从而找到相应旧节点(map映射)。
如果没找到就认为是一个新增节点。
而如果没有key,那么就会采用遍历查找的方式去找到对应的旧节点。
一个map映射,另一种是遍历查找。相比而言。map映射的速度更快

官网推荐推荐的使用key,应该理解为“使用唯一id作为key”。因为index作为key,和不带key的效果是一样的。


2. [‘1’, ‘2’, ‘3’].map(parseInt)结果

var new_array = arr.map(function callback(currentValue[,index[, array]]) {
// Return element for new_array
}[, thisArg])
callback一共可以接收三个参数,其中第一个参数代表当前被处理的元素,而第二个参数代表该元素的索引。

parseInt(string, radix) 解析一个字符串并返回指定基数的十进制整数,radix 是 2-36 之间的整数,表示被解析字符串的基数。

转换一下
[‘1’, ‘2’, ‘3’].map(function(item, index) {
return parseInt(item, index)
})

在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux: 基础IO

学习目标 1.C接口与系统调用接口的差别 2.文件描述符, 重定向, 一切皆文件, 缓冲区 3.fd与FILE, 系统调用和库函数的关系 4.系统中的inode 5.软硬链接 6.动静态库 预备知识 1.文件 内容 属性 2.文件的所有操作: a. 对内容的操作 b.对属性的操作 3.文件在磁盘(硬件)上, 我…

通过IP地址管理提升企业网络安全防御

在今天的数字时代,企业面临着越来越多的网络安全威胁。这些威胁可能来自各种来源,包括恶意软件、网络攻击和数据泄露。为了提高网络安全防御,企业需要采取一系列措施,其中IP地址管理是一个重要的方面 1. IP地址的基础知识 首先&a…

04训练——基于YOLO V8的自定义数据集训练——训练结果说明

YOLOv8的训练执行情况指标说明 运行YOLO V8的训练代码将会看到以下执行的情况。 在上图中,我们可以看到每一轮训练的指标情况,YOLOv8训练过程中的输出指标具体介绍如下: • Epoch: 当前的训练轮数,一轮表示所有的训练数据都被模型处理一次。例如,1/100表示第一轮训练,总…

高效截屏方法,你值得拥有!在Windows10中截屏的3种方法

本文介绍如何在Windows 10中捕获屏幕截图,包括使用键盘组合、使用Snipping Tool、Snipp&Sketch Tool或Windows游戏栏。 使用WindowsPrtSc组合键截图 在Windows 10中捕获屏幕截图的最简单方法是按下键盘上的PrtScWindows键盘组合。你将看到屏幕短暂闪烁&#x…

微信小程序发布流程

前言 上周写了如何写一个小程序,然后经过查资料,改bug,找chatgpt美化页面,我写了一个计算代谢率的小工具,写完了之后该怎么办呢,当然是发布上架,然后我就开始了发布的折腾 提交代码 这一步很…

线性表相关知识

1.简述 线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即“把所有数据按照顺序(线性)的存储结构方式,存储在物理空间”。 按照空间分类: 顺序存储结构:数据依次存储在连续…

可爱的回调函数

目录 一、作者声明: 二、什么回调函数? 三、库函数qsort为例,讲解回调函数 一、作者声明: 标题中的可爱纯纯是用来凑字数,没有特殊含义,因为可爱的平台不让用四个字作为标题! 如果平台允许我…

上海未来产业创投联盟启动成立,和鲸Heywhale成为首批发起单位

第三届“海聚英才”全球创新创业峰会于近期举办,会上正式启动成立“上海未来产业创投联盟”,上海和今信息科技有限公司等 31 家单位成为首批发起单位。 为进一步坚定产业投资信心,营造最优人才生态,9月20日下午,第三届…

mstp vrrp bfd 实验

LSW1配置 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sys lsw1 [lsw1]vlan batch 10 20 30 [lsw1]int g0/0/1 [lsw1-GigabitEthernet0/0/1]port link-type access [lsw1-GigabitEthernet0/0/1]port default vlan 10 [lsw1-GigabitEthernet0…

ELK集群 日志中心集群

ES&#xff1a;用来日志存储 Logstash:用来日志的搜集&#xff0c;进行日志格式转换并且传送给别人&#xff08;转发&#xff09; Kibana:主要用于日志的展示和分析 kafka Filebeat:搜集文件数据 es-1 本地解析 vi /etc/hosts scp /etc/hosts es-2:/etc/hosts scp /etc…

铁路防护网RFID锁控,实现铁路防护网智能防盗防破坏

一、铁路防护网的挑战与需求 铁路防护网作为铁路运输系统中的重要组成部分&#xff0c;面临着安全性和防盗防破坏的挑战&#xff0c;传统的锁控系统存在以下问题&#xff1a; 1、安全隐患难以发现&#xff1a;传统锁控系统无法及时发现锁被剪断或破坏的情况&#xff0c;容易造…

【SpringCloud】Eureka原理分析、搭建Eureka服务、服务注册、服务发现

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 eureka 一、Eureka原理分析1.1 服务调用出现…

【项目开发 | C语言项目 | 贪吃蛇】

项目简单介绍 本项目是一个命令行版的贪吃蛇游戏。用户需要控制一个蛇在屏幕上移动&#xff0c;吃食物来增长&#xff0c;同时避免撞到边界和自己的身体。 一&#xff0c;开发环境需求 操作系统 &#xff1a;Windows 开发环境工具 &#xff1a;Qt, VSCode, Visual Studio 技…

springboot基于Web的社区医院管理服务系统springboot025

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

10.8队列安排,最少找字典次数,表达式转换与计算模拟(栈、队列)

队列安排1160 灵活的插入与删除 用队列实现的话&#xff0c;就是双端队列&#xff0c; 第一阶段是要找到对应编号的同学&#xff0c;然后根据p的取值决定是怎么插入 第二阶段也是要找到对应编号同学&#xff0c;之后就删除&#xff0c;如果找不到就返回 思路是这个思路&…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(六)

思维导图 一、正则表达式 1.1正则表达式介绍 1.2 语法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…

JavaWeb-Vue

JavaScript-Vue 什么是Vue Vue Vue是一套前端框架&#xff0c;免除原生JavaScript中的DOM操作&#xff0c;简化书写。基于MVVM&#xff08;Model-View-ViewModel&#xff09;思想&#xff0c;实现数据的双向绑定&#xff0c;将编程的关注点放在数据上。官网&#xff1a;http…

若依项目新建子模块

官方资料:后台手册 | RuoYi 建设完成后测试详情 在新建的业务模块添加com.ruoyi.ding包&#xff0c;新建TestService.java&#xff1b; 在里面写测试代码返回hello 在ruoyi-admin新建测试类&#xff0c;调用helloTest&#xff0c;成功返回hello代表成功。

基于springboot实现汽车租赁管理系统项目演示【项目源码+论文说明】分享

基于springboot实现汽车租赁管理系统项目演示 摘要 随着社会的发展&#xff0c;计算机的优势和普及使得汽车租赁系统的开发成为必需。汽车租赁系统主要是借助计算机&#xff0c;通过对汽车租赁信息等信息进行管理。减少管理员的工作&#xff0c;同时也方便广大用户对个人所需汽…

(Vue3)defineOptions、defineModels Pinia及持久化

Vue3.3新特性defineOptions v-model和defineModel 开启特性vite.config.js中加配置 重启架子&#xff08;试验性质&#xff09;npm run dev Pinia Vue最新的状态管理工具&#xff0c;代替Vuex Pinia配置创建项目时自动添加 安装 npm install pinia 创建一个 pinia 实例 (根 s…