- JSX做表达式判断时候,需要强转为boolean类型
- 不使⽤ !!b 进⾏强转数据类型,会在⻚⾯⾥⾯输出 0
render() {
const b = 0;
return <>
{ !!b && <div>这是⼀段⽂本</div> }
</>
}
- 遍历⼦节点的时候,不要⽤ index 作为组件的 key 进⾏传⼊
- 在react中,只有被改变了的元素才会被重新渲染
- diff算法将newVDom与改变前的Dom结构(oldVDom)进行比较,找到key值相同的li标签,并进行自上至下逐一对比
- 将上面的所有比对的差异放入一个补丁包中,再将补丁包应用到真实DOM上
- 原本每次点击只需要逐个删除列表中的第一个li节点
- 由于用index做key导致点击事件发生后,新产生的newVDOM中li的key被动态赋值,于是就有了对比错位,导致diff以为每个li都发生了改变,于是页面重新渲染了所有的列表项

- 给组件添加ref时候,不要使⽤匿名函数(否则去ref赋值后的属性会取到null)
- 因为当组件更新的时候,匿名函数会被当做新的prop处理
- 让ref属性接受到新函数的时候,react内部会先清空ref,即以null为回调参数先执⾏⼀次ref这个props,再在以该组件的实例执⾏⼀次ref
- 不要在 componentWillReviceProps ⾥使⽤ setState
- 如果⼀定要使⽤,那么需要判断结束条件,不然会出现⽆限重渲染,导致⻚⾯崩溃
- componentDidUpdate会⽆限重渲染