react与redux的一点心得(理解能力有限,蜗牛进度)
Redux是一款状态管理库,并且提供了react-redux库来与React亲密配合, 但是总是傻傻分不清楚这2者提供的API和相应的关系。这篇文章就来理一理。
如果要用一句话来概括Redux,那么可以使用官网的这句话:Redux是针对JavaScript应用的可预测状态容器。此句话虽然简单,但包含了以下几个含义:
可预测性(predictable): 因为Redux用了reducer与纯函数(pure function)的概念,每个新的state都会由旧的state建来一个全新的state。因而所有的状态修改都是”可预测的”。
状态容器(state container): state是集中在单一个对象树状结构下的单一store,store即是应用程序领域(app domain)的状态集合。
JavaScript应用: 这说明Redux并不是单指设计给React用的,它是独立的一个函数库,可通用于各种JavaScript应用。
Redux基于简化版本的Flux框架,Flux是Facebook开发的一个框架。在标准的MVC框架中,数据可以在UI组件和存储之间双向流动,而Redux严格限制了数据只能在一个方向上流动。
具体的模型图如下图所示:
为了说明整个模型的运作流程,首先我们需要弄清Redux模型中的几个组成对象:action 、reducer、store。
action:官方的解释是action是把数据从应用传到 store 的有效载荷,它是 store 数据的唯一来源;要通过本地或远程组件更改状态,需要分发一个action;
reducer:action发出了做某件事的请求,只是描述了要做某件事,并没有去改变state来更新界面,reducer就是根据action的type来处理不同的事件;
store:store就是把action和reducer联系到一起的对象,store本质上是一个状态树,保存了所有对象的状态。任何UI组件都可以直接从store访问特定对象的状态。
在Redux中,所有的数据(比如state)被保存在一个被称为store的容器中 ,在一个应用程序中只能有一个store对象。当一个store接收到一个action,它将把这个action代理给相关的reducer。reducer是一个纯函数,它可以查看之前的状态,执行一个action并且返回一个新的状态。
Redux
Redux 三大核心
Redux的核心由三部分组成:Store, Action, Reducer。
Store : 是个对象,贯穿你整个应用的数据都应该存储在这里。
Action: 是个对象,必须包含type这个属性,reducer将根据这个属性值来对store进行相应的处理。除此之外的属性,就是进行这个操作需要的数据。
Reducer: 是个函数。接受两个参数:要修改的数据(state) 和 action对象。根据action.type来决定采用的操作,对state进行修改,最后返回新的state。
最新文章
- Unity3D框架插件uFrame实践记录(一)
- Python环境配置安装
- PHP中类的继承和构造函数的继承
- 海洋女神建新installshield交流群了,原来的老群都满了,请加新群哦,记得认真填写验证信息
- 在ASP.NET中上传附件
- ASP.NET WEB API 中的路由调试与执行过程跟踪
- IL指令大全
- Android开发规范——命名 (转)
- 最小生成树(kruskal模版 模板)
- jQuery的入门操作
- node 全局对象global —— 记录在线人员
- mac charles手机抓包详细教程
- Linux基本命令总结(七)
- win10 win7 环境下 oracle 11g和Plsql的安装、卸载遇到的问题。
- 最优-scroll事件的监听实现
- 探索未知种族之osg类生物---呼吸分解之事件循环二
- jni的一些基础知识和概念
- CentOS7安装ipython
- WEB前端 [编码] 规则浅析
- css鼠标移动到文字上怎样变化背景颜色