乔拓云智能建站免费注册淘宝做问卷的网站好

diannao/2025/10/14 17:57:56/文章来源:
乔拓云智能建站免费注册,淘宝做问卷的网站好,鄂州网站制作,wordpress图床推荐本章内容 目录 一、了解 Diff 算法二、key 值的重要性三、为什么不建议使用 index 做 key 值 上一节我们初步了解了 React中的”虚拟 DOM“ #xff0c;本节我们来说一说”虚拟DOM“中的”Diff算法“ 一、了解 Diff 算法 在上一篇中#xff0c;我们有讲到#xff1a;当 st… 本章内容 目录 一、了解 Diff 算法二、key 值的重要性三、为什么不建议使用 index 做 key 值 上一节我们初步了解了 React中的”虚拟 DOM“ 本节我们来说一说”虚拟DOM“中的”Diff算法“ 一、了解 Diff 算法 在上一篇中我们有讲到当 state或者 props数据变化时会生成新的 ”虚拟DOM“然后”旧虚拟DOM“和”新虚拟DOM“进行比对。那么怎么进行比对呢答案是”使用 Diff 算法“。 ”Diff算法“我们把两个 ”JS对象“比对的算法叫做 ”Diff 算法“ 问1、”虚拟DOM“ 什么时候被比对 答当”数据“发生变化的时候新旧”虚拟DOM“才会进行比较问2、那什么时候”数据“会发生变化 答state 或者 props 改变时代码中使用了 setState() 时数据发生变化问3、为什么 React 的 setState() 设计成”异步“呢 答为了提高 React 底层的性能。比如说如果我们在间断很短的时间内调用 setState() 如果设计成 ”同步“那么就有三次更新比对”虚拟DOM“的过程 如果设计成”异步“就可以合并成”1次“只做一次”虚拟DOM“的比对然后去更新一次DOM避免了性能的消耗问4、新旧”虚拟DOM“如何进行比对呢 答采用”同层比较“的方式。首先从最顶层开始如果一致就会去比较第二层以此类推。 如果顶层比较时不一致则会直接将”原始DOM“进行全部替换。这样”比较“和”替换“的暴力方式看着好像挺浪费性能的一层不一致就全部替换很多DOM都没被复用但由于”同层比较“的算法简单因此比较的速度很快性能一下就被提升了二、key 值的重要性 在之前的案例中我们循环渲染列表时会在循环项上廷加一个 key。那为什么或者有必要添加这个 key呢答案是有必要因为在”虚拟DOM“的”Diff算法“中这个 key为循环的每一项添加了一个卫衣标识可以有效提高”虚拟DOM“的比对性能 假设我们现在有个数组里面有 5 个数据项。当界面第一次循环渲染时这5个数据会被映射成 5个”虚拟DOM“节点生成一个小的”原始虚拟 DOM树“ 当数据变化时会生成一个”新的虚拟DOM“ 然后”新旧虚拟 DOM“进行比对理想状态 如果此时每一项数据都没有设置 key值那么节点和节点的关闭就不确定需要一个一个的去比较。相反如果设置了 key值那么每一项被唯一标识。这样我们就可以将”相同key标识的项“去比对这无疑加快了比较速度 三、为什么不建议使用 index 做 key 值 指的注意的是上面提升”性能“的关键点是”同样的节点取了相同的名字“如果说使用 index作为 key值我们不能保证相同的节点拥有同样的名字 打开我们的 TodoList案例在列表循环时使用 index作为 key值然后运行打开浏览器 // TodoList.js 文件 import React, { Component, Fragment } from react; import TodoItem from ./TodoItem;class TodoList extends Component{constructor(props) {super(props)this.deleteData this.deleteData.bind(this)this.addListData this.addListData.bind(this)this.changeInputValue this.changeInputValue.bind(this)this.state {inputValue: , list: []} }render() { return (Fragmentdiv请输入要进行的事项input value{this.state.inputValue} onChange{this.changeInputValue} /button onClick{this.addListData} 提交 /button/divul {this.getTodoItem()} /ul/Fragment)}getTodoItem() {return this.state.list.map((item, index) {// 1、使用 index 作为 key 值return TodoItem key{index} content{item} index{index} deleteFn{this.deleteData}/TodoItem})}deleteData(index) {this.setState((prevState) {const list [...prevState.list]list.splice(index, 1)return {list}})}addListData() {this.setState((prevState) ({list: [...prevState.list, prevState.inputValue],inputValue: }))}changeInputValue(e) {const value e.target.valuethis.setState(() ({inputValue: value})) } }export default TodoList 在输入框中输入一些内容,观察界面效果 此时Oli -- key: 0 qdywxs -- key: 1 Oli and qdywxs -- key: 2删除 Oli后 此时qdywxs -- key: 0 Oli and qdywxs -- key: 1所以说使用 index作为 key值这就造成了同一节点前后 key值不一样那么这两个节点就无法建立联系也就起不到根据key 值快速比对内容的效果了 假如我们使用唯一的key值节点的标识是稳定的也就在比对过程中 key有了重要作用 到此本章内容结束

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

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

相关文章

剑网三奇遇查询网站怎么做线上营销工具

大家好,我是若川。持续组织了近一年的源码共读活动,感兴趣的可以 加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

深圳网站设计十年乐云seo合肥房产备案网上查询

一个星期前刷了3.2,但充电和耗电问题一直困扰着我,我的魅兔主要出现以下问题:1.充电慢,基本四个小时充满。如果一边玩一边充,甚至会掉电。2.耗电极快,待机一小时掉电10%,待机一晚掉电50%。倒是出…

网站分站作用石家庄兼职做网站

在32位系统,ip2long不能转换IPv6,但您可以转换ip2bin和bin2ip 这个函数转换为IPv4和IPv6,返回false,如果是无效的实例程序 代码如下复制代码function ip2bin($ip){if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ! fa…

做母婴产品哪个网站做的好处wordpress文字个数

两个应用程序如果需要进行通讯最基本的一个前提就是能够唯一的标示一个进程,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中…

怎么建立博客网站wordpress打印短代码

大模型日报 2024-04-09 大模型资讯 苹果预告超越ChatGPT的新AI模型ReaLM 摘要: 苹果公司最新宣布,即将推出一款名为ReaLM的人工智能模型。这款AI技术在理解复杂屏幕用户指令方面表现出高超的能力,并能与用户进行自然流畅的对话。ReaLM的推出预示着苹果在…

怎样注册自己的货运网站网站收录就是没排名

2019独角兽企业重金招聘Python工程师标准>>> 一提到BCH,你最想拿它做什么?可能对于投资者来说,它是暴富的神器,是投资的工具;对于开发者来说,是实现自身价值构建应用程序的网络和平台&#xff0…

网页制作作业网站网上做兼职的网站

在.net 4.0中增加一个延迟加载类Lazy<T>&#xff0c;它的作用是实现按需延迟加载&#xff0c;也许很多人用过。一个典型的应用场景是这样的&#xff1a;当初始化某个对象时&#xff0c;该对象引用了一个大对象&#xff0c;需要创建&#xff0c;这个对象的创建时需要较长的…

网页制作网站开发的论文清涧县住房和成乡建设局 网站

来源 | 小林coding作者 | 小林coding头图 | 下载于视觉中国代码写了那么多&#xff0c;你知道 a 1 2 这条代码是怎么被 CPU 执行的吗&#xff1f;软件用了那么多&#xff0c;你知道软件的 32 位和 64 位之间的区别吗&#xff1f;再来 32 位的操作系统可以运行在 64 位的电脑上…

创世通网站建设网站建设赛车

零基础创建Unity精美场景地形&#xff08;使用插件Gaia&#xff09;一、先上最终效果图二、软件环境搭建1.Unity5.6.0下载链接https://unity3d.com/cn/get-unity/download/archive?_ga2.110664517.1175563345.1516068066-173539005.15020707552.Gaia Unity地形制作插件下载链…

建行官方网站登录wordpress阿里云插件

大神的分析 : 提到: 每当收到cc-feedback或者收到RR-report的时候就能统计出丢包率,在cc-controller中就会调用SendSideBandwidthEstimation::UpdatePacketsLost()去更新丢包率,同时进行码率预估 G:\CDN\rtcCli\m98\src\modules\congestion_controller\goog_cc\send_side_b…

做婚介网站wordpress注册邮箱发送邮件

点击蓝字关注我们1、栈区&#xff1a;由编译器自动分配释放&#xff0c;存放函数的参数值&#xff0c;局部变量等&#xff08;由编译器管理其“生死”&#xff09;注意事项&#xff1a;不要返回局部变量的地址&#xff0c;栈区开辟的数据由编译器自动释放栈区代码演示&#xff…

成都建设网站的公司哪家好wordpress导航主题模板下载地址

Java线程池是用于管理和复用线程的机制&#xff0c;它可以帮助开发者有效地管理线程的生命周期和资源&#xff0c;并提高应用程序的性能和稳定性。 1. 线程池概述 在计算机科学中&#xff0c;线程池是一种可用来执行异步任务的线程队列。它主要包含以下几个组成部分&#xff…

网站建设公司有哪些重要职务wordpress当前分类热门调用

IoTDB C# Client 0.13.0.7 已经发布&#xff0c; 此版本更新的内容为笔者为Apache-IoTDB-Client-CSharp实现了Ado.Net的兼容层&#xff0c;降低了对IoTDB的使用门槛。于此同时&#xff0c; IoTSharp也开始支持了IoTDB的数据入库&#xff0c;随着晚些时候IoTSharp 2.7 版本的发布…

自己做的网站怎么改电话广西防城港建设厅网站

前言 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各部件同时处理是针对不同指令而言的&#xff0c;比如说&#xff0c;指令流水线把一条指令分为取指、分析和执行3部分&#xff0c;可以同时处理取指和分析&#xff0c;但是不能同时处理一个部…

去哪里找空间做网站网站建设公司怎样做账

青少年软件编程(Python)等级考试试卷(三级) 分数:100 题数:38 一、单选题(共25题,共50分) 1. 一个非零的二进制正整数,在其末尾添加两个“0”,则该新数将是原数的?( ) A. 10倍

免费的黄金网站有哪些咋做个人网站

公众号&#xff1a;程序员白特&#xff0c;欢迎一起交流学习~ 在日常的业务开发中&#xff0c;偶尔会出现内存泄漏的情况&#xff0c;那么我们该怎么排查呢&#xff1f;现在跟着文章一起学习下吧~ 使用Chrome devTools查看内存情况 打开Chrome的无痕模式&#xff0c;以屏蔽Ch…

企业网站上线wordpress tag 数据库

拜占庭将军问题 叛将先发送消息 如果是叛将楚先发送作战消息&#xff0c;干扰作战计划&#xff0c;结果会有所不同吗&#xff1f; 在第一轮作战信息协商中&#xff0c;楚向苏秦发送作战指令"进攻",向齐、燕发送作战指令"撤退"&#xff0c;如图所示(当然还…

南阳网站推广公司网站开发需要会啥

这一题就是php的弱比较“” 这里要求输入的不是数字&#xff0c;并且输入要为1才打印flag 那我们就输入一个1后面接随便什么字符&#xff0c;因为php的弱比较将字符与数字进行比较的时候&#xff0c;会把字符转换成数字再比较&#xff0c;当转换到字符时后面便都为空了 flag{…

兼职做效果图设计到哪个网站找有网站怎么做seo推广

Invoke和BeginInvoke的区别 本文导读&#xff1a;BeginInvoke() 调用时&#xff0c;当前线程会启用线程池中的某个线程来执行此方法&#xff0c;当前线程不被阻塞&#xff0c;继续运行后面的代码&#xff0c; Invoke() 调用时&#xff0c;会阻塞当前线程&#xff0c;等到 Invo…

上海城乡建设网站首页北京网站建设公司服务有哪些

对象引用、浅拷贝、深拷贝(拓展、难点、重点) Python中&#xff0c;对象的赋值&#xff0c;拷贝&#xff08;深/浅拷贝&#xff09;之间是有差异的&#xff0c;如果使用的时候不注意&#xff0c;就可能产生意外的结果 其实这个是由于共享内存导致的结果 拷贝&#xff1a;原则…