面试题答案
一键面试- 使用
useState
和useContext
实现状态共享的步骤:- 创建Context:首先创建一个React Context对象,用于在组件树中传递数据。
- 在A组件中管理状态并通过Context传递:使用
useState
在A组件中管理状态,并通过Context.Provider将状态传递下去。 - 在B组件中通过Context消费状态:B组件使用
useContext
来获取A组件传递过来的状态,这样A组件状态改变时,B组件能实时反映。
- 关键代码示例:
import React, { createContext, useState, useContext } from'react';
// 创建Context
const MyContext = createContext();
const AComponent = () => {
const [count, setCount] = useState(0);
return (
<MyContext.Provider value={{ count, setCount }}>
<div>
<p>A组件的count: {count}</p>
<button onClick={() => setCount(count + 1)}>增加count</button>
</div>
</MyContext.Provider>
);
};
const BComponent = () => {
const { count } = useContext(MyContext);
return (
<div>
<p>B组件反映的count: {count}</p>
</div>
);
};
const App = () => {
return (
<div>
<AComponent />
<BComponent />
</div>
);
};
export default App;
在上述代码中,AComponent
使用useState
管理count
状态,并通过MyContext.Provider
将count
和setCount
传递下去。BComponent
使用useContext
获取count
状态,从而实现A组件状态改变实时反映在B组件上。