美文网首页React 重新学习前端技术
React 文档再学习 4 保留和重置状态

React 文档再学习 4 保留和重置状态

作者: 吴摩西 | 来源:发表于2022-11-23 20:25 被阅读0次

浏览器中有多种树,DOM 树 描述 HTML,CSSDOM 描述 CSS 树。甚至还有Accessibility Tree 描述易用性。

相同位置的同样组件会保留状态

例如

function App() {
  const [isFancy, setIsFancy] = useState(false);
  return (<div>
    {isFancy ? <Counter isFancy={true} /> : <Counter isFancy={false} /> }
  </div>);
}

Counter 不会因为单独的声明而重置,而是会保持其当前状态。甚至于,如果 fiber 树保持不变的情况下,相同位置的组件也会保持状态。如果想要在重绘时保持状态,应该尽量保持 Fiber 树的结构不变。

所以不能嵌套声明函数组件,因为每次都是不同的组件,虽然声明相同。

不同位置的组件会重置状态

function App() {
  const [isFancy, setIsFancy] = useState(false);
  return (<div>
    {isFancy && <Counter isFancy={true} />} 
    {!isFancy && <Counter isFancy={false} /> }
  </div>);
}

这样的代码因为组件位置不同,会导致它状态重置。

不同 key 的组件会重置状态

function App() {
  const [isFancy, setIsFancy] = useState(false);
  return (<div>
    {isFancy ? <Counter key="fancy" isFancy={true} /> : <Counter key="no_fancy" isFancy={false} /> }
  </div>);
}

key 是组件位置的一部分,因为不同的 key,React 会重置状态。

相关文章

  • React 文档再学习 4 保留和重置状态

    浏览器中有多种树,DOM[https://developer.mozilla.org/docs/Web/API/D...

  • React 文档再学习 3 管理状态 - 正确的组织状态

    保留或者重设状态 对于以下的组件 如果重置了 contact ,组件内部的 的值不会被重置。如果需要重置整个...

  • React 文档 Part 1

    —— 基础知识、JSX介绍、React 元素、组件和属性、状态和生命周期 此文档来自 React 官方文档,在英文...

  • React学习 & 与Vue的比较总结

    React文档学习 学习资源:react中文文档 前言 有过Vue与Vuex的学习基础;在重新学习React的时候...

  • 未看文章

    react-router4文档react-router4文档 # react-router 按需加载2.# 浅谈R...

  • setState

    React文档对于setState的解释和应用setState()会对组件状态的改变进行排列然后噶欧式React该...

  • react-router4代码分割

    react-router4代码分割 react-router4官方文档: https://reacttrainin...

  • React

    React 《React 官网文档》 React简介 React概念 React官网学习实践 - jSX简介 Re...

  • 2021-08-22 P6-P7

    文件操作3dmax左上角 文件按钮重置选项可以把文件恢复到初始打开的状态, 配置也会重置新建则保留配置打开 .ma...

  • 入门学习 React 一些实例

    这是几个入门学习 React 的小 Demo,帮助自己学习了解 React 的运行机制,结合 React官方文档,...

网友评论

    本文标题:React 文档再学习 4 保留和重置状态

    本文链接:https://www.haomeiwen.com/subject/fcraxdtx.html