面试题答案
一键面试- 创建Context:
在React中,使用
createContext
函数来创建一个Context对象。这个对象包含了Provider
和Consumer
两个属性。import React from'react'; const UserContext = React.createContext(); export default UserContext;
- 使用Provider提供数据:
在需要共享状态的父组件中,使用
UserContext.Provider
来包裹需要传递数据的子树,并通过value
属性传递数据。import React from'react'; import UserContext from './UserContext'; const App = () => { const isLoggedIn = true; return ( <UserContext.Provider value={isLoggedIn}> {/* 其他子组件 */} </UserContext.Provider> ); }; export default App;
- 在组件中通过useContext消费数据:
在子组件中,使用
useContext
钩子来获取Provider
传递的数据。import React, { useContext } from'react'; import UserContext from './UserContext'; const ChildComponent = () => { const isLoggedIn = useContext(UserContext); return ( <div> {isLoggedIn? '用户已登录' : '用户未登录'} </div> ); }; export default ChildComponent;
在上述例子中,App
组件通过UserContext.Provider
将isLoggedIn
(用户登录状态)传递下去,ChildComponent
组件使用useContext
获取该状态并进行展示,实现了父子组件间用户登录状态的传递。