老师请问一个问题
来源:4-7 【全局数据传递】Context 与 useContext

刘Sir_
2021-03-17
在一个js文件中声明appContext
// appContext.js
import React from 'react'
export const appContext = React.createContext({
content: 'Hello World'
})
组件中直接引用声明好的上下文对象
import { useContext } from 'react'
import { appContext } from './appContext'
function App() {
const { content } = useContext(appContext)
return (
<div>
{ content }
</div>
)
}
这样也可以共享数据,不需要使用appContext.provider包裹组件了,请问这样写有什么问题吗?
写回答
1回答
-
阿莱克斯刘
2021-03-21
如果真的只是为了共享数据,不监听数据的改变,我们甚至不需要使用context,简单的使用let或者const定义一个全局变量也完全可以达到同样的效果。
使用provider最重要的并不是为了数据的获取,而是为了当数据变化的时候可以同步反映在所有的子组件中。
问题中的例子比较简单,所以无法完全展示provider的真正用途和全部过程。不过课程案例中对context的数据变化有完整的展示,可以多看两次理解一下。
另外,我在b站上传了一门hoooks的入门课,也可以作为本课程的补充参考一下。节奏有点慢,你可以1.5倍或2倍速看,https://www.bilibili.com/video/BV1Kr4y1K7so#reply4273766154
012021-03-22
相似问题