React状态管理-对state进行保留和重置

相同位置的相同组件会使得 state 被保留下来


当你勾选或清空复选框的时候,计数器 state 并没有被重置。不管 isFancytrue 还是 false,根组件 App 返回的 div 的第一个子组件都是 <Counter />

你可能以为当你勾选复选框的时候 state 会被重置,但它并没有!这是因为 两个 标签被渲染在了相同的位置。 React 不知道你的函数里是如何进行条件判断的,它只会"看到"你返回的树。在这两种情况下,App 组件都会返回一个包裹着 作为第一个子组件的 div。这就是 React 认为它们是 同一个 的原因。

你可以认为它们有相同的"地址":根组件的第一个子组件的第一个子组件。不管你的逻辑是怎么组织的,这就是 React 在前后两次渲染之间将它们进行匹配的方式。

相同位置的不同组件会使 state 重置


在相同位置重置 state

相关推荐
前端 贾公子18 小时前
vue移动端适配方案 === postcss-px-to-viewport
前端·javascript·html
GISer_Jing19 小时前
AI营销增长:4大核心能力+前端落地指南
前端·javascript·人工智能
m0_4711996320 小时前
【场景】前端怎么解决离线收银、数据同步异常等场景问题
前端·javascript
栀秋66621 小时前
“无重复字符的最长子串”:从O(n²)哈希优化到滑动窗口封神,再到DP降维打击!
前端·javascript·算法
xhxxx21 小时前
不用 Set,只用两个布尔值:如何用标志位将矩阵置零的空间复杂度压到 O(1)
javascript·算法·面试
鹿鹿鹿鹿isNotDefined21 小时前
Antd5.x 在 Next.js14.x 项目中,初次渲染样式丢失
前端·react.js·next.js
有意义21 小时前
斐波那契数列:从递归到优化的完整指南
javascript·算法·面试
Mr.Jessy1 天前
JavaScript高级:深入对象与内置构造函数
开发语言·前端·javascript·ecmascript
温宇飞1 天前
深入理解 JavaScript 模块系统:CJS 与 ESM 的实现原理
javascript