React docs由以下语句表示什么?

问题描述 投票:0回答:1

根据我们的经验,考虑了UI在任何给定时刻的外观,而不是如何随时间进行更改,这消除了一整类的bug。

来自React Docs

据我所知,这意味着React仅更新必要的内容,而不是破坏并重新构建整个DOM树。我错了吗?

任何人都可以帮助我理解引用的声明吗?

谢谢。

javascript reactjs dom
1个回答
0
投票

据我所知,这意味着React仅更新必要的内容,而不是破坏并重新构建整个DOM树。我错了吗?

如果您想知道简短的答案,我必须说这是trueReact将在需要时更新DOM中的必要元素。

但是,如果您想知道它是如何完成的,以及当React将更新DOM及其元素时,我必须使用proper methods改变不同的几件事,例如project architecture钩在功能组件中,例如useCallbackuseMemo等)等等。

什么时候真正被重新渲染?

据我所知,React找到了两种方法来重新渲染DOM。

  1. 将元素传递到ReactDOM.render

  2. 更新状态

  3. ] >>

    什么是ReactDOM.render?

    这将从render()调用react-dom方法(通常将其作为ReactDOM导入),它将把React元素呈现到提供的容器中的DOM中,并返回对该组件的引用(或返回null用于无状态组件)。同样,如果React元素先前已渲染到容器中,它将对它执行更新,并且仅在必要时才更改DOM以反映最新的React元素。

状态是什么意思?

state

对象是存储属于该组件的属性值的位置。因此,当您拥有一个组件并且该组件具有其自己的特定变量时,更改它们会影响DOM,您应该使用它,然后只要[[state进行更改,该组件就会被更新。

所以,当我上面没有提及任何内容时,我什至谈论项目架构和这些东西?

假设我们有一个项目,其中有一个父组件和三个子组件,就像这样:

Component 1 - |- Component 2 - - |- Component 3 - - - |- Component 4

因此,每当您在Component 4中使用

state

时,所有DOM元素都将被重新渲染,为什么呢?因为Component 4Component 3的子级,依此类推,所以当子级[[state
发生更改时,它将强制父级重新呈现,然后整个DOM将在每个[[state更改中重新呈现一次。最后注释因此,总的来说,对于我们的项目,或者当它必须使用诸如useMemo之类的内置方法来避免这种情况时,我们应该始终被视为一个好的架构和层次结构。
© www.soinside.com 2019 - 2024. All rights reserved.