中级第 11 / 17 节35 分钟 · 实操
Context 与 useContext
React 课程的一部分
你的应用有一个深色模式开关。开关本身在设置面板里,可真正需要知道这个值的,是页面里一张卡片、卡片里一张表格、表格里往下第八层的一个按钮。想靠属性把值从这头传到那头,中间每一个组件都得接收一个自己根本用不上的 theme 属性,然后原样往下递。再加一个全应用共用的值,比如当前登录的用户,它们就得各接收两个了。
React 为此提供了一条官方的出路,名字叫上下文 (context):在组件树的某一点发布一个值,它下面的任何组件都能直接读到,不管隔了多少层,中间也不需要任何人帮忙转交。最贴切的比方是电台广播。电台在某个频率上发射,覆盖范围内的任何一台收音机都能自己调过去收听。发射塔和收音机之间的楼房并不负责把信号一栋一栋传下去,它们只是恰好在覆盖范围之内。
想在真实环境里学习 React Context 与 useContext 吗?
点击下方,立即获得一台预装 React 的 Linux 主机,跟懂你代码的 AI 导师一起完成 Context 与 useContext 的实操练习。
开始这节课Context 与 useContext你将学到什么
- CreateContext
- Context.Provider
- UseContext
- When context is the right tool
- Context vs prop drilling tradeoffs
