首页 > 其他分享 >react使用map循环渲染dom时,增加或删减数组,但想保持其余的dom与数据不发生改变

react使用map循环渲染dom时,增加或删减数组,但想保持其余的dom与数据不发生改变

时间:2024-03-19 17:12:10浏览次数:20  
标签:map 渲染 dom 删减 改变 循环 key

 

核心思路:dom渲染与key值有关系,如果想实现上述需求,则需要关注改变前后的循环项的key值是否发生改变

 currentCabinet?.map((item, index) => <BaseInfo key={`currentCabinet${item?.ciId}`} sceneKey={sceneKey} currentCabinet={item} />)

如以上示例,以ciId为key值,可以保证即使数组发生变化,但循环时的key与改变前的一致,此时dom就不会重新渲染(保留数据),并且dom相关样式配置也不会发生变化,针对拖拽可用

标签:map,渲染,dom,删减,改变,循环,key
From: https://www.cnblogs.com/Simoon/p/18083433

相关文章

  • golang sync.Map之如何设计一个并发安全的读写分离结构?
    在golang中,想要并发安全的操作map,可以使用sync.Map结构,sync.Map是一个适合读多写少的数据结构,今天我们来看看它的设计思想,来看看为什么说它适合读多写少的场景。如下,是golang中sync.Map的数据结构,其中属性read是只读的map,dirty是负责写入的map,sync.Map中的键值对value......
  • QSignalMapper的使用和使用场景
    QSignalMapper的使用和使用场景 目录QSignalMapper的使用和使用场景常见场景下面是参考。可看可不看这篇写的不错,搬运为Markdown了可以看一下参考 QSignalMapper的使用和使用场景QSignalMapper类收集了一系列的无参信号,然后使用相对于信号发送者来说的整数......
  • Semaphore源码解析
    Semaphorehttps://www.bilibili.com/video/BV1Ae411C7xr/publicclassSemaphoreimplementsjava.io.Serializable同Reetrantlock在Sync继承AQSabstractstaticclassSyncextendsAbstractQueuedSynchronizer可以指定Sync是否是公平锁,默认非公平permits为设置AQS内stat......
  • Go04-数组+切片+map
    Go4-数组+切片+map1.数组的定义、赋值、访问和遍历//1数组用来存放多个同一类型的数据,在Go中数组是值类型。//2数组的定义、赋值和遍历。//定义数字。vararrs[2]int//给数组元素赋值。arrs[0]=0arrs[1]=2//02fori:=0;i<len(arrs);i++{fmt.P......
  • 【STL】 C++常用容器介绍系列(一)----(map、set、stack)
    目录一、map系列1、map介绍2、unordered_map介绍3、map和unordered_map的选择二、set系列1、set介绍2、unordered_set介绍3、set和unordered_set的选择三、如何遍历和查询map和set1、map的遍历2、map的查询3、set的遍历4、set的查询四、stack介绍和操作stack的方......
  • 实现 React-redux(一) connect 和 mapStateToProps
    1.结合context和storeimportReact,{Component}from'react';importPropTypesfrom'prop-types'functioncreateStore(reducer){letstate=nullconstlisteners=[]constsubscribe=(listener)=>listeners.push(listener)con......
  • 实现 React-redux(二) mapDispatchToProps
     App.js:importReact,{Component}from'react';importPropTypesfrom'prop-types'importHeaderfrom'./Header'functioncreateStore(reducer){letstate=nullconstlisteners=[]constsubscribe=(listener)=>l......
  • 学习JavaEE的日子 Day27 手撕HashMap底层原理
    Day271.手撕HashMap底层原理(重点)publicclassTest01{ publicstaticvoidmain(String[]args){ // Floatfloat1=newFloat("0.0f");// Floatfloat2=newFloat("0.0f");// Floatresult=float1/float2;// System.out.println(result);/......
  • 深入学习 XML 解析器及 DOM 操作技术
    所有主要的浏览器都内置了一个XML解析器,用于访问和操作XMLXML解析器在访问XML文档之前,必须将其加载到XMLDOM对象中所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XMLDOM对象解析文本字符串以下示例将一个文本字符串解析为XMLDOM对象,并使用JavaScript从中提取......
  • perl 用 XML::LibXML DOM 解析 Freeplane.mm文件,生成测试用例.csv文件
    Freeplane是一款基于Java的开源软件,继承Freemind的思维导图工具软件,它扩展了知识管理功能,在Freemind上增加了一些额外的功能,比如数学公式、节点属性面板等。在云计算中,解析XML元素和属性是一种常见的操作,因为XML是一种常见的数据交换格式,可以用来表示各种不同的数据结......