react 相同层级,相同的key为什么还会正确的渲染结果?

image.png

image.png

相同层级,key相同应该不会再去diff,实际测试发现还是会正确更新,并且控制台也没有任务报错警告信息?
哪怕把 key写个一个固定的值,还是能正常渲染,为什么?

react版本: 16.4.0
`

import React, { Component } from "react";
export default class Page extends Component {
  state = {
    lists:[11,22,33]
  };
  changeLists =()=>{

    this.setState({
      lists:[1,2,3]
    })
  }


  componentDidMount() {
  }

  render() {
    return (
      <div>
        <button onClick={this.changeLists}>change</button>
        <ul>
          {
            this.state.lists.map((item,index)=>{
              return <li key={index}>
                {item}-{index}
              </li>
            })
          }
        </ul>
      </div>
    );
  }
}

`

阅读 2.8k
1 个回答

key的作用是快速找到对应的旧节点,并非不进行DIFF算法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题