原文链接:https://zhuanlan.zhihu.com/p/20641377

我们故事的主人公,小明。

小明大学刚毕业,摆脱了宿舍的集体生活,自己在外面租了个一室一厅的小公寓住。

这是客厅的平面图:

一天小明邀请小马来家里做客。小马说:呀你家的家具摆放位置好奇特!这种通过眼睛看到的视觉效果,就是React。每一个家具都是一个component,各种不同的components组成了一个我们的web的‘页面’,或者说是所谓的‘view'。

又有一天小马又来家里做客,街边买了50个肉串和10个大腰子,准备和小明一起边撸串儿边看人类和电脑下棋的电视节目。但是小马突然发现,莫名其妙的你妹为什么在这老子坐下来边吃东西边看电视貌似是无法满足的需求啊。这种想法来源于小马与各种家具(components)的一些交互。之后小马跟小明说,我们能不能想点办法来解决这个问题呢?

通过激烈的讨论和商议,小明和小马决定重新摆放家具的位置,然后画出了图纸如下:

有了图纸就要准备干活了。第二天,小明叫来了李雷和韩梅梅来帮忙,小明说:

  • “李雷,帮我把电视搬到沙发正对面然后靠墙的地方”
  • “韩梅梅,帮我把桌子向沙发方向平移5米”

十分钟之后,房间内家具的位置变成了像图纸的那样。

问题解决了,第三天。小明,小马,李雷,韩梅梅四个小伙伴在家里快乐的吃起了火锅。

完。

=============== 我是分割线 ===============

先让我们回顾下整个故事:

小马发现家具的摆放不合理 ---> 画出规划图纸 ---> 小明给李雷和韩梅梅分配任务 ---> 李雷和韩梅梅动手搬家具 ---> 家具布局改变

再来说下Redux里的几个核心概念,这里我们把React也加进来:

  • view(React)
  • store(state)
  • action
  • reducer

接下来看看Redux/React与这个故事的联系:

  • view(React) = 家具的摆放在视觉的效果上
  • store(state) = 每个家具在空间内的坐标(如:电视的位置是x:10, y: 400)
  • action = 小明分配任务(谁应该干什么)
  • reducer = 具体任务都干些什么(把电视搬到沙发正对面然后靠墙的地方)

所以这个过程应该是这样的:

view ---> action ---> reducer ---> store(state) ---> view

如果放入一个web app中,首先store(state)决定了view,然后用户与view的交互会产生action,这些action会触发reducer因而改变state,然后state的改变又造成了view的变化。

完(这次是真的。。)

转载于:https://www.cnblogs.com/liuna/p/6098673.html

关于Redux到底是个什么鬼相关推荐

  1. Vuex白话教程第一讲:Vuex到底是个什么鬼?

    Vuex白话教程第一讲:Vuex到底是个什么鬼? Vuex白话教程第二讲:Vuex旗下的State和Getter Vuex白话教程第三讲:Vuex旗下的Mutation Vuex白话教程第四讲:Vue ...

  2. 章磊回答: 姚期智提出的百万富翁难题被破解? 多方安全计算MPC到底是个什么鬼?

    姚期智提出的"百万富翁"难题被破解? 多方安全计算MPC到底是个什么鬼? 作者 | 章磊 责编 | Aholiab 出品 | CSDN.ARPA 在越来越多对数据隐私的担忧声中,政 ...

  3. 【干货】CRM大牛告诉你,Salesforce到底是个什么鬼?

    本期主题 | Salesforce到底是个什么鬼 分享嘉宾 | 裘思博 Celnet雨花石创始人&合伙人 文字整理 | 莜筱 入群请联系管理员 37℃ 微信号:erhuoyimei 裘思博 本 ...

  4. python logger handler_Python中的logger和handler到底是个什么鬼

    最近的任务经常涉及到日志的记录,特意去又学了一遍logging的记录方法.跟java一样,python的日志记录也是比较繁琐的一件事,在写一条记录之前,要写好多东西.典型的日志记录的步骤是这样的: 创 ...

  5. 广义线性模型到底是个什么鬼?

    以下文章内容摘自网络:说人话的统计学 原标题:广义线性模型到底是个什么鬼? ❉说人话的统计学❉ 从逻辑回归模型开始,我们连续讲了好多集有些相似又特点各异的几种统计模型.它们有个统一的旗号,叫做「广义线 ...

  6. react+redux实战——redux到底是个啥子?

    写在前面 文章是个人初学redux的分享,从redux基础知识点到使用redux搭建简单的表单提交项目. 项目代码地址:https://github.com/jishuaizhen/react-red ...

  7. 区块链到底是个什么鬼,一幅漫画让你秒懂

    区块链到底是个什么鬼,一幅漫画让你秒懂 字体:  小  中  大  | 打印发布: 2018-1-12 10:58    作者: n    来源: 21世纪经济报道    查看: 930 次 区块链技 ...

  8. 计算机硬件的漏洞,震惊了硬件圈子的CPU漏洞,到底是个什么鬼?

    原标题:震惊了硬件圈子的CPU漏洞,到底是个什么鬼? 这两天如果你关注一点硬件圈的话,可能会注意到这两天CPU爆出了两个重要漏洞(一开始大家以为只有一个).关于这俩漏洞,身边也有人问过橙子君这究竟是个 ...

  9. 枚举到底是个什么鬼类型?

    前言 枚举是很多面向对象语言都会有的一种类型,它可以将表达同一类型的变量组合成一个集合,组成一个常量集 在Java中也有枚举类型,是用enum关键字来表示的 枚举常用来表示一个常量集,用来限定变量的取 ...

最新文章

  1. v-show 与 v-if 的区别
  2. Docker镜像是什么,有什么用?
  3. 快速了解 UML 类图
  4. boost::mp11::mp_rotate_right相关用法的测试程序
  5. android mysql sqlite_Android SQLite (一) 数据库简介
  6. 利用 apache ab 测试服务器性能
  7. c#中tcp协议服务器同时接收客户端的数据
  8. mysql mode_mysql中的sql_mode
  9. HTML+CSS+JS实现 ❤️3D方块弹跳动画特效❤️
  10. 边缘计算比云计算强在哪里?终于有人讲明白了
  11. (原創) 用OOP实作矩阵相乘 (C/C++)
  12. 对象用[]来获取属性的注意点
  13. fckeditor for java_FCKeditor最新版本2.4.1 for java 教程
  14. html卡机代码,能让微信卡死的代码是什么 微信整人代码大全
  15. Inno Setup 详解中文资料
  16. 软件测试工程师简历项目经验怎么写?1000套简历模板告诉你答案
  17. 特殊字符存入mysql_数据库中特殊字符的存取
  18. 超实用Mac/Macbook 影片剪辑软件推荐【2022 最新】
  19. 【计算机网络】Web服务器的配置
  20. excel表格打印每页都有表头_如何在Excel打印时每页都有表头?你知道么

热门文章

  1. 7:1 error Expected indentation of 2 spaces but found 4 indent 11:35 error Newline requir
  2. 2021-05-08 小华子第一篇
  3. Angular Material 学习笔记 Chips
  4. Odoo产品分析 (三) -- 人力资源板块(7) -- 费用追踪(1)
  5. linux 选择 平铺 窗口,【如何配置linux 平铺式窗口管理器i3wm?】-看准网
  6. 深入理解for update 和 lock in share mode
  7. roundrobin来历_黑山:起源Source引擎低画质指令
  8. DW 简单效果代码整理
  9. vue实现标签云效果
  10. python按照号段生成手机号接收验证码,「 python 」 python 实现短信验证码