React Hooks:App.js状态更改并重新渲染

时间:2020-09-02 15:07:28

标签: reactjs react-hooks

这可能是一个琐碎的或毫无根据的问题,但重要的是要知道到底发生了什么,因为目前没有很好的材料或答案。

基本上,请考虑以下简单示例:

App.js

const [someState, setSomeState] = useState(0)
....
some more state variables and functions
....
<ContextWrapper someState={someState} someFunction={someFunction}>
    <Child1 />
    <Child2 />
</ContextWrapper>

ContextWrapper基本上是另一个具有上下文的组件,该上下文在整个应用程序组件中得到广泛使用,并返回以下内容:

<DataContext.Provider value={{ values }}>{props.children}</DataContext.Provider>

现在,这是我的问题:

1。)每次我更改App的任何状态时,都会重新渲染,并且所有子代也都重新渲染。这也包括我的ContextWrapper。这不是违反直觉的吗?我做错了吗,App组件应该没有状态,所以不会触发重新渲染吗?

2。)将道具传递给ContextWrapper时有什么问题吗?

3。)这会对性能产生什么影响,如何停止子组件的多次重新渲染?甚至有必要这样做吗,或者这没什么大不了的?

谢谢!

0 个答案:

没有答案