reactjs - 反应重新渲染道具更改与本地状态更改
问题描述
为什么组件 Demo 不会在计数器更改时重新呈现?我知道props.children与以前的相同,但是本地状态会发生变化,因此应该重新渲染。是否以某种方式优化了更改本地状态以检测是否应该重新渲染Top 组件的某些部分或不应该?
在第二个示例中它会重新渲染,这些示例之间有什么区别?
在示例中,您可以单击按钮并在控制台中查看 Demo 是否重新渲染。
解决方案
在第一种情况下,您传递的children
which 是组件的一部分,props
并且本质上是在组件的每次重新渲染上Top
,将返回相同的children
引用,因此 React 会检测到这一点并且不会重新渲染Demo
组件。
在第二种情况下,React 将React.createElement(...)
再次在内部执行以创建Demo
组件,这是一个新的引用。
这是一个很好的方式来记住这一点:-
如果 React 组件在其渲染输出中返回与上次完全相同的元素引用,React 将跳过重新渲染该特定子元素
推荐阅读
- java - 如何修复 cassandra 服务器中未配置的表系统日志?
- c++ - 为什么通过委托返回 const 引用会在 C++ 中出现分段错误,而没有委托只是“很好”
- node.js - NODEJS:使用 supertest 和 mocha 的测试自动通过 GitLab CI/CD
- flutter - 冻结 - 创建子类
- php - 制作 CPT 帖子和页面循环(使用 Elementor)
- regex - 检查字符串是否具有以下格式:2 个字母 au max 后跟带有 regexp_like oracle 的数字
- javascript - 如何选择动态创建的输入的 ID?
- regex - htaccess:从缺少值的查询字符串中删除 URL 参数?
- python - Python Spyder - IPython 控制台中的水平滚动条隐藏最后一行
- c# - elasticsearch中长数据类型的通配符搜索问题