码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • react循环实现及key的作用


    首先,我们需要引入react的库

    1. <script type="text/javascript" src="../day03/js/react.development.js"></script>
    2. <script type="text/javascript" src="../day03/js/react-dom.development.js"></script>
    3. <script type="text/javascript" src="../day03/js/babel.min.js"></script>

    接着我们定义一组数据,可以是数组或者是对象

    1. class Person extends React.Component{
    2. state={
    3. PersonArr:[
    4. {
    5. id:1,
    6. name:'大哥',
    7. age:19
    8. },
    9. {
    10. id:2,
    11. name:'二弟',
    12. age:23
    13. },
    14. ]
    15. }
    16. }

    接下来,我们进行数据的循环,有两种写法,一个是写在return之前,另一种方法是写在根标签中

    1. render(){
    2. let dom=this.state.PersonArr.map((item,index)=>{
    3. return <li key={item.id}>{item.name}</li>
    4. })
    5. return(
    6. <div>
    7. <h4>三傻进城</h4>
    8. <ul>
    9. {dom}
    10. </ul>
    11. </div>
    12. )
    13. }

    如上所示,我们的数据循环就完成了,但是在li标签中,我们使用了key,如果不写key,那么他会给我们进行报错,不会影响页面的渲染,错误如下

    key的介绍: 

    key的作用:唯一标识,可以提升性能,避免虚拟dom渲染偷懒产生bug
    场景:在使用index作为key是,逆向添加数据,产生key变化,造成页面渲染异常
    推荐:使用id作为唯一标识
    提升性能:减少不必要的重复渲染

    duff算法:


        1.虚拟dom对象前后对比,当key值不同时,直接进行真实dom渲染
        2.虚拟dom对象前后对比,当key值相同时,内容不同时,替换内容渲染真实dom
        3.key值相同,会进行虚拟dom树层层对比,相同的复用,不同的重新渲染真实dom

  • 相关阅读:
    文档 + 模型
    Spring学习之注解@Autowired、@Qualifier、@Resource
    高项(5)-人力资源管理-沟通管理-干系人管理-风险管理-采购管理-合同管理-配置管理-知识、变更、战略管理-安全管理-输入输出工具和技术记忆
    Qt Quick-PySide2使用qrc文件
    如何使用JavaScript实现多语言处理
    数据可视化在监控易中的艺术与实践
    阅读开源软件源码的心得体会
    HTML Emmet语法
    小视频管理软件stash
    基于内容推荐算法的实现,社交网络分析算法应用
  • 原文地址:https://blog.csdn.net/qq_60976312/article/details/125433342
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号