首页 > 其他分享 >vue/react关与key的面试题

vue/react关与key的面试题

时间:2023-03-21 15:12:33浏览次数:48  
标签:index 面试题 vue dom 真实 react 虚拟 key

  • 虚拟dom中key的作用

    当状态中的数据发生改变时,react会根据新数据生成新的虚拟dom,随后react进行新虚拟dom与旧虚拟dom的diff算法比较,比较规则如下:

    1.旧虚拟dom找到了与新虚拟dom相同的key

    a.若虚拟dom中的内容没变,则使用之前的真实dom

    b.若虚拟dom中的内容发生了改变,则生成新的真实dom,随后替换掉页面之前的真实dom

    2.旧虚拟dom没有找到与新虚拟dom相同的key

    根据数据创建新的真实dom,渲染到页面

  • 用index作为key可能引发的问题

    1.若对数据进行逆序添加删除等破坏顺序操作,会产生没必要的真实dom更新,代码效率低

    2.如果结构中包含输入类的dom,会产生错误dom更新,界面有问题

  • 开发中如何选择key

    1.最好使用数据的每条标识作为key,比如id、手机号、身份证号、学号等

    2.如果只是简单的数据展示,使用index也是可以的

  • ---------------------------------代码演示---------------------
  •  

     --------------------------------------运行结果------------------------------------------------

  •  

     可以明显的看到如果使用index作为key时,dom结构中出现了input输入框的节点,diff算法在进行新旧dom的比对时会出现错乱的问题

标签:index,面试题,vue,dom,真实,react,虚拟,key
From: https://www.cnblogs.com/llf11/p/17240075.html

相关文章