面试题答案
一键面试-
创建Context:
import { createContext } from 'solid-js'; const UserContext = createContext();
createContext
是Solid.js提供的用于创建上下文的函数。这里创建了一个名为UserContext
的上下文,它将用于在组件树中传递数据。
-
顶层组件中提供数据:
import { Provider } from 'solid-js'; const App = () => { const userLoginInfo = { username: 'testUser', loggedIn: true }; return ( <Provider of={UserContext} value={userLoginInfo}> {/* 其他子组件 */} </Provider> ); };
Provider
是用于将上下文数据提供给后代组件的组件。of
属性指定要使用的上下文(这里是UserContext
),value
属性则是要传递的数据(这里是userLoginInfo
,包含用户登录信息)。
-
深层子组件中消费数据:
import { useContext } from 'solid-js'; const DeepChildComponent = () => { const userLoginInfo = useContext(UserContext); return ( <div> {userLoginInfo.loggedIn && <p>Welcome, {userLoginInfo.username}</p>} </div> ); };
useContext
是用于在函数式组件中消费上下文数据的钩子。通过useContext(UserContext)
,可以获取到顶层Provider
传递下来的userLoginInfo
数据,然后在组件中根据数据进行渲染。