react可以写出一些比较简单的一些项目,但是只能写出很简单的一些项目,原因是什么呢,原因是react是一个非常轻量级的是视图层框架,打开官网可以看到大大的一行字,A JavaScript library for building user interfaces,一个js库,干什么用的呢,创建UI接口的。也就是他是一个非常简单的视图层的框架。为什么这么说呢,如果我的组件非常的多,经常要在组件之间共享一些数据,进行传值。用react编写应用会发现这个应用会变得非常的恶心。所以说react知识轻量级的视图层框架。
目前全球范围内,比较好的react搭配的数据层框架是什么呢,就是redux。首先redux是一个什么东西。
 

如图,在没有redux,只有react的时候,组件之间的传值会非常的麻烦,假设引入了redux。组件的传值为什么就简单了呢,看右侧的这张图。假设绿色的组件要给很多个灰色的组件传值,怎么去传呢。如果用redux。很简单,redux里面要求把数据都放在一个公共的存储区域,叫做store。组件之中尽量少放数据。也就是所有组件的数据都不放在组件自身了,我们都把他放到哪里去呢?放在一个公用的存储空间里面,叫做store这里
当绿色组件想要改变数据传递给其它组件的时候怎么办?我只要在绿色组件改变对应的数据就行了。接着灰色区域的这些组件会自动的感知到有变化了。只要store里面数据有变化,灰色组件会自动去store里面重新取数据。这样绿色组件的数据就非常轻松的传递给其它组件中。
redux就是把我们组件之中的数据放在公用的存储区域去存储,然后组件改变数据就不需要传递了。改变store里面的数据之后,其它的组件会感知到我store里面的数据发生改变。他再去取就会取到你要的数据。这样,不管层次结构有多深,走的流程都是一样的。所以会把数据的传递简化很多。这就是redux基础的设计理念。
接着,其实 Redux = Reducer + Flux。这又是什么冬冬,react在2013年开源的时候,facebook的团队除了放出react这个框架之外,他还放出了一个框架,叫做flux。flux这个框架实际上就是官方推出的最原始的辅助react使用的数据层框架。当然在他推出之后,业界的人在使用之后发现flux实际上有一些缺点。比如说他的公共存储区域store这个部分可以有很多个store所组成。这样的话,数据存储的时候,就可能存在一个数据依赖的问题。总之他不是特别的好用,于是有人,就把flux做了一个升级,升级成了我们目前使用的redux。在redux里面除了借鉴flux以前很多的设计理念之外呢,他又引入了一个reducer的概念。因为flux这个框架实际上目前已经有些过时了。所以就没必要去在意他的一些细节点了。

Redux概念简述的更多相关文章

  1. linux挂载概念简述:

    挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载” 1.挂载:根 ...

  2. redux概念介绍

    这一部分仅仅介绍react基本的概念,因为react不仅仅可以用在react中,还可以用在其他框架甚至原生 js 中.  所以这里只介绍通用的概念. redux使用场景 redux和vue中的vuex ...

  3. iOS中什么是superView?(新手概念简述版)

    文/司马陶冶(简书作者)/文章有删改原文链接:http://www.jianshu.com/p/8537dac37852 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 在iPhone ...

  4. 4、C#基础 - C# 的 常见概念简述

    在上篇文章中,你跟着我写了一个HelloWorld,本篇中,我们来谈谈一些C#程序中的小概念 1.C# 程序结构 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declarat ...

  5. C#基础 - C# 的 常见概念简述

    在上篇文章中,你跟着我写了一个HelloWorld,本篇中,我们来谈谈一些C#程序中的小概念 1.C# 程序结构 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declarat ...

  6. MII接口概念简述

    MII: Medium Independent Interface 媒体独立接口,也称介质无关接口 RMII: Reduced MII 简化媒体独立接口 GMII: Gigabit Medium In ...

  7. web概念简述,HTML学习笔记

    今日内容 1. web概念概述 2. HTML web概念概述 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务 ...

  8. IOC/DI概念简述及基本应用

    早几年面试时,面试官经常问我依赖注入的概念,但有面试官自己都不是很清楚ioc和di的区别,而是草草归于一类,今天翻了翻以前写的demo,顺便把这部分概念整理出来,加深一下印象. 先科普一下,IOC是什 ...

  9. elasticsearch中的概念简述

    Near Realtime(NRT) Elasticsearch接近实时.从为一个文档建立索引到可被搜索,正常情况下有1秒延迟. Cluster 一个集群有一个唯一的名字,默认是"elast ...

随机推荐

  1. 切换myEclipse工作空间后设置,myEclipse添加注释/设置豆沙背景颜色/调节字体大小

    一.添加注释 操作位置: 注释规范 Files/** * @文件名称: ${file_name} * @文件路径: ${package_name} * @功能描述: ${todo} * @作者: ${ ...

  2. oracle 笔记---(五)__内存管理

    ###查看连接池的信息 select connection_pool,status,maxsize from dba_cpool_info            

  3. oracle客户端中文乱码问题的解决

    1 查看服务器端编码 select userenv('language') from dual; 我实际查看到的结果为: USERENV('LANGUAGE') ------------------- ...

  4. TOJ 3176 Challenge from XOR

    Description Mr. AngelClover just learnt XOR on his Computer Class. XOR is a bit arithmetic operator ...

  5. 【python爬虫】利用selenium和Chrome浏览器进行自动化网页搜索与浏览

    功能简介:利用利用selenium和Chrome浏览器,让其自动打开百度页面,并设置为每页显示50条,接着在百度的搜索框中输入selenium,进行查询.然后再打开的页面中选中“Selenium - ...

  6. C#下查找并杀死子进程(进程树)

    参考:如何杀死进程及子进程 /** * 传入参数:父进程id * 功能:根据父进程id,杀死与之相关的进程树 */ public static void KillProcessAndChildren( ...

  7. SpringBoot集成JWT 实现接口权限认证

    JWT介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的, 特别适用于分布式站点 ...

  8. Jquery实现自动生成二级目录

    在博客园开通博客以后,就看到某位博友写的js自动生成目录的文章,当时觉得生成目录能给阅读带来方便,所以就直接拿来使用了.用了一段时间以后,发现只能生成一级目录,不能生成多级目录,有点美中不足.所以想着 ...

  9. SQL使用bcp方式导入,导出数据2

    select * from A_Account   EXEC sp_configure 'allow_updates' GO EXEC sp_configure 'allow_updates',0; ...

  10. easyui datebox 精确到秒并且显示值

    其实这个官网文档有的,也就不啰嗦了,直接贴官网的代码吧. <input id="dt" type="text" name="birthday&q ...