顾名思义本文分两个部分,理解和上手,第一部分我先讲个故事,这个故事也许不是特别形象,但对大家理解Redux一定有所帮助。第二部分我举个例子。

先讲个故事:

一个餐厅(应用),我是顾客(用户),这个餐厅很特殊,Redux帮老板设计了一套非常科学的食材管理系统:餐厅门口有很多小液晶面板(react组件),每个液晶面板上显示一种食材的剩余数量(数据),餐厅的所有食材都存放在一个智能冷库(redux 的 store)。看到我爱吃的东西都还有,我就走进去坐了下来,桌面上一张一次性菜单,我拿起笔在上面勾选(action)一份牛排一份鸡胸,我叫来服务员,服务员把我点的单子拿到厨房(dispath)贴到智能冷库(store)上。冷库通知对应的厨师(reducer)拿食物做菜。餐厅很大,每道菜都有固定的厨师来做,冷库很聪明,要做什么菜就能找到对应的厨师。厨师把牛排从冷库拿出来,厨师不能告诉冷库我拿了一块牛排,他要告诉冷库牛排还剩几块(新state 更新旧 state),这时候那块显示牛排还剩几块的液晶面板也更新了,这块面板连接(订阅)的就是冷库中牛排对应的数据。我还注意到旁边有块很大的屏幕,显示了所有饮料的数据,所有饮料库存数据更新,屏幕都会更新。

Action creators就是那一次性菜单,我想吃什么直接勾选就行了,但是没有也没关系,我可以在白纸上写啊,效果一样。你还可以注意到一点,你可以看到牛排还剩几块,但只有厨师可以把牛排从冷库拿出来。

下面举个例子:

Redux就是个数据中心,不依附于任何框架在哪使用都行。但是和它最搭配的应该就是React了,而且大家学习它的动力大多也是解决React状态管理的问题。都说Redux文档详尽清晰,但我感觉并不友好,它没有用最简单直观的方式告诉你如何搭配React使用。研究了两天的文档和示例,终于在项目中用上了我认为原本10分钟就能上手的Redux。当然,这两天去了解Redux的方方面面和相关的东西是值得的,只不过我喜欢先上手一个知识再去详细了解它,而不是反过来。如果你和我一样,那看完我写的这个小程序绝对是值得的。

关于我的这段程序解释几点:1. 功能超简单根本用不上Redux,但我强行用一下单纯为了介绍Redux怎么用。2. 和官方示例counter功能相似且更简单,但官方示例并没有详细的解释,而且没有和React绑定使用,如果你不了解Redux看完了你还是迷糊,我的这段程序就是为了让你不迷糊。3. 解释部分在注释,部分名词和官方有出入但不影响,只是我的理解。4. 欢迎指正。

总结一下,数据处理器的集合生成一个数据中心,connect把旧组件替换成已经连接到数据中心的新组件(传入需要监听的数据),需要更新数据调用this.props.dispatch方法传入action,可以写一些动作生成器管理action。完事。

理解和上手Redux的更多相关文章

  1. 深入理解React、Redux

    深入理解React.ReduReact+Redux非常精炼,良好运用将发挥出极强劲的生产力.但最大的挑战来自于函数式编程(FP)范式.在工程化过程中,架构(顶层)设计将是一个巨大的挑战.要不然做出来的 ...

  2. 如何理解 Redux?

    作者:Wang Namelos 链接:https://www.zhihu.com/question/41312576/answer/90782136 来源:知乎 著作权归作者所有,转载请联系作者获得授 ...

  3. 对于Redux的理解

    在移动端项目,经常会在不同view中进行传递数据,事件.当事件比较少时,我们可以通过常规的事件流方法,注册,发布事件 进行响应等等.但是项目中一个事件多处响应时候,就会使程序变得相当复杂.在现在的Vu ...

  4. 理解 React,但不理解 Redux,该如何通俗易懂的理解 Redux?

    作者:Wang Namelos链接:https://www.zhihu.com/question/41312576/answer/90782136来源:知乎著作权归作者所有.商业转载请联系作者获得授权 ...

  5. 理解 React,但不理解 Redux,该如何通俗易懂的理解 Redux?(转)

    作者:Wang Namelos 链接:https://www.zhihu.com/question/41312576/answer/90782136来源:知乎 解答这个问题并不困难:唯一的要求是你熟悉 ...

  6. 通俗易懂的理解 Redux(知乎)

    1. React有props和state: props意味着父级分发下来的属性[父组件的state传递给子组件  子组件使用props获取],state意味着组件内部可以自行管理的状态,并且整个Rea ...

  7. Redux状态管理方法与实例

    状态管理是目前构建单页应用中不可或缺的一环,也是值得花时间学习的知识点.React官方推荐我们使用Redux来管理我们的React应用,同时也提供了Redux的文档来供我们学习,中文版地址为http: ...

  8. Redux教程1:环境搭建,初写Redux

    如果将React比喻成士兵的话,你的程序还需要一位将军,去管理士兵(的状态),而Redux恰好是一位好将军,简单高效: 相比起React的学习曲线,Redux的稍微平坦一些:本系列教程,将以" ...

  9. 【前端】react and redux教程学习实践,浅显易懂的实践学习方法。

    前言 前几天,我在博文[前端]一步一步使用webpack+react+scss脚手架重构项目 中搭建了一个react开发环境.然而在实际的开发过程中,或者是在对源码的理解中,感受到react中用的最多 ...

随机推荐

  1. application/x-www-form-urlencoded从前端到后台

    html <form id="userForm1" enctype="application/x-www-form-urlencoded" method= ...

  2. 关于HTML中的object元素

    <object>元素:它主要用于定义网页中的多媒体,比如音频,视频,Java applets,PDF,Active和Flash.object标签内除了param标签外,其他的内容将在浏览器 ...

  3. BZOJ4488 JSOI2015最大公约数

    显然若右端点确定,gcd最多变化log次.容易想到对每一种gcd二分找最远端点,但这样就变成log^3了.注意到右端点右移时,只会造成一些gcd区间的合并,原本gcd相同的区间不可能分裂.由于区间只有 ...

  4. 【转】Visio画用例模型图竟然没有include关系

    转自:http://blog.csdn.net/shuixin536/article/details/8289746 由于电脑上没有安装Rose,因此决定用visio来画UML中的用例模型图,在绘制的 ...

  5. Linux总结(二)

      1. 虚拟机安装 a)双系统(不建议初学者一开始去装) b)般建议使用虚拟机来操作试验环境 c)好处:可以模拟真实的环境进行各种的试验和操作 d)在启动之后,在操作的时候会占用一部分的系统资源 1 ...

  6. 如何使用Photoshop制作真实的尺子

    前言: 日常生活中经常性的偶尔需要测量一些东西的尺寸,但刚好手头上缺乏尺子等必要的测量工具,这时候其实我们可以利用Photoshop,临时制作一把基于现实物理单位(如:厘米)的虚拟尺子. 难点: 像素 ...

  7. 文件格式转换神器-pandoc

    By francis_hao    Mar 11,2017 介绍 如果你需要在各种类型的文件中穿梭,那么你需要这把瑞士军刀-pandoc 它可以将各种常见的不常见的文件类型转换成另一种,我感兴趣的是在 ...

  8. The XOR Largest Pair [Trie]

    描述 在给定的N个整数A1,A2--AN中选出两个进行xor运算,得到的结果最大是多少? 输入格式 第一行一个整数N,第二行N个整数A1-AN. 输出格式 一个整数表示答案. 样例输入 3 1 2 3 ...

  9. rman备份与异机恢复

    一.rman备份脚本并为定时任务 #!/bin/bashsource ~/.bash_profileexport LANG=en_USBACKUP_DATE=`date +%d`#RMAN_LOG_F ...

  10. JS 中 call 和 apply 的理解和使用

    本文受到了知乎问题 如何理解和熟练运用js中的call及apply? 的启发. obj.call(thisObj, arg1, arg2, ...); obj.apply(thisObj, [arg1 ...