当前位置:网站首页>使用Context API维护全局状态
使用Context API维护全局状态
2022-07-30 05:40:00 【勿扰丶】
- ContextAPI是官方提供的一种组件树全局通信的方式(生产者和消费者模式)。16.3之前由于存在各种局限性不提倡使用
- 下面给个例子
const AppContext = React.createContext();
const {
Provider, Consumer } = AppContext;
// Provider生产者 可以为多个消费者使用
<Provider value={
title:this.state.title,content:this.state.content}>
<Title /> //子组件
<Content /> //子组件
</Provider>
// Consumer 代表消费者
function Title(props) => {
return (<Consumer>
{
value => <div> {
value.title} </div>}
</Consumer>
);
}
- 新的Context API解决了什么问题?
- 之前的代码不够优雅,很难迅速判断出谁是Provider谁是Consumer
- 无法在保证数据在生产者和消费者之间的及时同步
案例:如果组件提供一个Context 发生了变化,而中间父组件的shouldcomponentUpdate返回false,那么使用带该值的后代组件不会进行更新。使用了Context的组件则完全失效,所以基本上没有办法能够可靠的更新Context。
边栏推荐
猜你喜欢
随机推荐
240.搜索二维矩阵II
pycharm专业版 配置pytest
函数解剖——深挖getchar()与putchar()
VS2022中关于scanf函数报错解决方法
strlen和sizeof的区别
MySQL fuzzy query performance optimization
‘kaggle视频游戏销售数据的可视化和分析‘项目实现
art-template模板引擎过滤器的使用【入门简单使用篇】
524.通过删除字母匹配到字典里最长单词
cnpm installation steps
MySQL 数据库基础知识(系统化一篇入门)
中间件cors三行代码解决跨域问题GET,POST跨域访问解决
Difference between cookie and session
union中有struct的情况-从内存分析
C语言:快速排序三种方法(递归)
This dependency was not found:
php实现数据库的增删查改操作-教务管理系统
C语言(1)
Navicat cannot connect to mysql super detailed processing method
5.5线程池
![[详解C语言]一文带你玩转数组](/img/1b/245fdc7f3711cf794175da7a93b128.png)








