老师请问一个问题

来源: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


0
1
刘Sir_
谢谢老师
2021-03-22
共1条回复

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程