[react] 为什么React并不推荐我们优先考虑使用Context?

[react] 为什么React并不推荐我们优先考虑使用Context?

1、Context目前还处于实验阶段,可能会在后面的发行版本中有很大的变化,事实上这种情况已经发生了,所以为了避免给今后升级带来大的影响和麻烦,不建议在app中使用context。
2、尽管不建议在app中使用context,但是独有组件而言,由于影响范围小于app,如果可以做到高内聚,不破坏组件树之间的依赖关系,可以考虑使用context
3、对于组件之间的数据通信或者状态管理,有效使用props或者state解决,然后再考虑使用第三方的成熟库进行解决,以上的方法都不是最佳的方案的时候,在考虑context。
4、context的更新需要通过setState()触发,但是这并不是很可靠的,Context支持跨组件的访问,但是如果中间的子组件通过一些方法不影响更新,比如 shouldComponentUpdate() 返回false 那么不能保证Context的更新一定可以使用Context的子组件,因此,Context的可靠性需要关注。

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论



主目录

与歌谣一起通关前端面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

思科数据中心Nexus 3000

思科数据中心新战略 将推Nexus 3000等产品 ZDNET网络频道:2011-03-07:网界网 本文关键词:思科 数据中心 思科计划很快推出一款为频繁的金融交易设计的数据中心交换机,或者还可能推出类似于瞻博网络最近发表的QFabric的一种交换机结…

VC++文件监控(一) ReadDirectoryChangesW

From: http://www.cnblogs.com/doublesnke/archive/2011/08/16/2141374.html VC实施文件监控:实例和详解 相关帮助: http://hi.baidu.com/jiahaosoft/blog/item/b441d1218eebece0d6cae274.html 我这里只介绍采用ReadDirectoryChangesW对文件目录实施监控 关键代码…

深度学习--Matlab使用LSTM长短期记忆网络对负荷进行分类

一、概述 关于LSTM同系列的前一篇文章写的是利用LSTM网络对电力负荷进行预测【LSTM预测】,其本质是sequence-to-sequence problems,序列到序列的预测应用。这里做一下sequence-to-label classification problems,序列到标签的分类应用【LSTM…

VC跨进程数据(结构体)传递-WM_COPYDATA

两个测试程序,都是MFC基于对话框的应用程序,一个是发送者,一个是接收者。 两个程序都使用同一个结构体: typedef struct {char imsi[20];char options[512]; }_tagResult;发送者:按钮点击事件: void CCa…

[react] 什么渲染劫持?

[react] 什么渲染劫持? 首先,什么是渲染劫持:渲染劫持的概念是控制组件从另一个组件输出的能力,当然这个概念一般和react中的高阶组件(HOC)放在一起解释比较有明了。 高阶组件可以在render函数中做非常多…

咨询的真相8:咨询业的“前世今生”

第四节 咨询业的奶酪究竟有多大 2001年,又是从美国,传来了一本风靡全球的畅销书,讲的是四个老鼠和一块奶酪的故事。从此,奶酪就成了众人争抢之物的代名词。美国人的创新精神不得不佩服,忒俗的一个道理经他们仅从形式上…

matlab LSTM序列分类的官方示例

matlab版本是2018b及其以上。 %% %加载序列数据 %数据描述:总共270组训练样本共分为9类,每组训练样本的训练样个数不等,每个训练训练样本由12个特征向量组成, [XTrain,YTrain] japaneseVowelsTrainData; %数据可视化 figure plo…

【MySQL】Java对SQL时间类型的操作(获得当前、昨天、前年。。时间)

Java获得当前时间1 java.util.Date date new java.util.Date(); 2 Timestamp time new Timestamp(date.getTime()); Java获得昨天的时间1 Calendar cal Calendar.getInstance(); 2 cal.add(Calendar.DATE, -1); 3 String a new SimpleDateFormat( "yyyy-MM-dd ")…

[react] 说说你对React的渲染原理的理解

[react] 说说你对React的渲染原理的理解 1.单向数据流。React是一个MVVM框架,简单来说是在MVC的模式下在前端部分拆分出数据层和视图层。单向数据流指的是只能由数据层的变化去影响视图层的变化,而不能反过来(除非双向绑定) 2.数…

MATLAB K-means聚类代码讲解

一、概述 K-means聚类采用类内距离和最小的方式对数据分类,MATLAB中自带K-means算法,最简单的调用如下: idxkmeans(x,k) 将n-by-p数据矩阵x中的数据划分为k个类簇。x的行对应数据条数,x的列对应数据的维度。注意:当…

树型控件使用

树型控件的使用: 1、设置树型控件的风格。 DWORD dwStyle GetWindowLong(m_TreeCtrl.m_hWnd, GWL_STYLE); dwStyle | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT; SetWindowLong(m_TreeCtrl.m_hWnd, GWL_STYLE, dwStyle); TVS_HASBUTTONS、TVS_HASLINES等风格有很多…

带界面的OCX制作实例

制作一个有界面的OCX,并进行测试。代码下载 一、制作一个有界面的OCX: 设置该对话框的属性(关键噢): 给添加的对话框资源关联一个类CDlgTest,基类是:CDialog,如下: 给CO…

[react] componentWillUpdate可以直接修改state的值吗

[react] componentWillUpdate可以直接修改state的值吗 1: 不行,这样会导致无限循环报错。 2:在react中直接修改state,render函数不会重新执行渲染,应使用setState方法进行修改 个人简介 我是歌谣,欢迎和大家一起交流…

mysql 分组后取每个组内最新的一条数据

首先,将按条件查询并排序的结果查询出来。 1 mysql> select accepttime,user,job from tuser_job where user 8 order by accepttime desc;2 --------------------------------3 | accepttime | user | job |4 --------------------------------5 | 20…

Qt C++ 命名空间namespaces讲解

一、概述 命名空间 namespace 将一组去哪聚范围内有效的类、对象或者函数组织到一个命名的名字下边,将全局范围分割成多个子域,每个子域就叫做命名空间。作用是在大工程中避免多个类和文件出现相同的成员名称。 命名空间使用的格式为: nam…

从淘宝数据结构来看电子商务中商品属性设计

淘宝名词解释 产品 和 商品的区别: 淘宝标准化产品,由类目关键属性唯一确定。如:手机类目,关键属性是品牌和型号,Nokia N95就是一个产品,nokia是品牌,N95是型号。产品除了关键属性还包括一般信息、销售属性和非关键属性…

linux串口驱动分析

linux串口驱动分析硬件资源及描述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)端口,每个端口都可以在中断模式或 DMA 模式下操作。UART 使用系统时钟可以支持最高 115.2Kbps 的波特率。每…

用C++实现网络编程---抓取网络数据包的实现方法

From: http://blog.csdn.net/zjl_1026_2001/article/details/2191311 做过网管或协议分析的人一般都熟悉sniffer这个工具,它可以捕捉流经本地网卡的所有数据包。抓取网络数据包进行分析有很多用处,如分析网络是否有网络病毒等异常数据,通信协…

二分图----最大匹配,最小点覆盖,最大点独立集

一.二分图 二分图又称作二部图,是图论中的一种特殊模型。 设G(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A…

[react] 怎么使用Context开发组件?

[react] 怎么使用Context开发组件? import React, {Component} from react// 首先创建一个 context 对象这里命名为:ThemeContext const ThemeContext React.createContext(light)// 创建一个祖先组件组件 内部使用Provier 这个对象创建一个组件 其中…