配合源代码学习吧~ : 我是源代码

这一分支讲的是 如何完整地(不包含优化,也没有好看的页面) 搭建一个 增删改查 的 react-redux 系统

  • 不同于上一节的 react-redux,这里主要采用 函数式组件。 函数式组件 = 函数式的写法 + 不需要state的组件。

其实函数式组件也就那么回事。 如果组件本身 没有需要 维护的 state,我们就可以使用 函数式组件。

  • react-redux 的一部分难度来源于 connect,其实它就是一个。。。 高阶函数!就是我们上一节说的。

    • 作用:连接React组件与 Redux store。

    • connect之所以会成功,是因为Provider组件:在原应用组件上包裹一层,使原来整个应用成为Provider的子组件

    • 其实它主要是一个链接函数,而它内部的参数是有固定格式的,比若说

      connect([toProps函数,叫什么不重要], [mapDispatch函数], [mergeProps], [optiosn]);
      toProps(state, ownProps) => 将 store 的数据映射到 props 上绑定。
      toDispatch(dispatch, ownProps) => 将 action 的函数映射到 props 上绑定。
      剩下两个一般不用。
  • 还有一部分的难度在于 redux 的拆分,这个官网已经有例子了,这里就不放代码啦。


一步一步的优化

  • 从 class 类的写法到 函数式的写法
  • 从集成的 reducer 到拆分的 reducer
  • 我们可以增加 保存在本地的 localStorage 来让我们的 app 更加真实一点

转成localStorage的过程中要注意,之前写的 toggle 函数(simple组件)中的 index 和 id 需要改动。

onClick={() => itemClick(item.id)}

  • 我们可以给我们的 App 添加上适当的样式,让其看起来真的想一个 todolist。

其他

  • form表单提交的时候会刷新页面。如果不希望刷新的话,需要:

例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。

  • e.preventDefault(); 可以阻止诸如 提交的默认事件。
  • 除此之外,e.stopPropagation(); 可以阻止事件冒泡,顺带了解一下。

redux超易学三篇之三(一个逻辑完整的react-redux)的更多相关文章

  1. redux超易学三篇之二(开始使用react-redux)

    其实 redux 真正让人感到混乱的还是在 react-redux 的使用中. 请配合完整代码参考~:完整源代码 也不是说混乱,主要是网上 推崇 最佳实践.学习一个新东西的时候,本来就很陌生,上来就用 ...

  2. redux超易学三篇之一(单独说redux)

    redux其实非常简单.当复杂的步骤被拆分,其实每一步都是很容易的. Github: 完整代码链接 本文在 create-react-app 中的 index.js 随便引入了一下. (其实不必如此. ...

  3. Hadoop总结篇之三---一个Job到底被提交到哪去了

    我们会定义Job,我们会定义map和reduce程序.那么,这个Job到底是怎么提交的?提交到哪去了?它到底和集群怎么进行交互的呢? 这篇文章将从头讲起. 开发hadoop的程序时,一共有三大块,也就 ...

  4. 第三篇:一个Spark推荐系统引擎的实现

    前言 经过2节对MovieLens数据集的学习,想必读者对MovieLens数据集认识的不错了:同时也顺带回顾了些Spark编程技巧,Python数据分析技巧. 本节将是让人兴奋的一节,它将实现一个基 ...

  5. git第三篇---建立一个project

    Git global setup: git config --global user.name "xx" git config --global user.email " ...

  6. angular开发者吐槽react+redux的复杂:“一个demo证明你的开发效率低下”

    曾经看到一篇文章,写的是jquery开发者吐槽angular的复杂.作为一个angular开发者,我来吐槽一下react+redux的复杂. 例子 为了让大家看得舒服,我用最简单的一个demo来展示r ...

  7. react + redux 完整的项目,同时写一下个人感悟

    先附上项目源码地址和原文章地址:https://github.com/bailicangd... 做React需要会什么? react的功能其实很单一,主要负责渲染的功能,现有的框架,比如angula ...

  8. React Redux 与胖虎

    这是一篇详尽的 React Redux 扫盲文. 对 React Redux 已经比较熟悉的同学可以直接看 <React Redux 与胖虎他妈>. 是什么 React Redux 是 R ...

  9. 分析RAC下一个SPFILE整合的三篇文章的文件更改

    大约RAC下一个spfile分析_整理在_2014.4.17 说明:文章来源于网络 第一篇:RAC下SPFILE文件改动 在RAC下spfile位置的改动与单节点环境不全然一致,有些地方须要特别注意, ...

随机推荐

  1. Timer的定义及demo

  2. UIThread

    功能如下:点击Create则新创建一个窗口 一 . 资源中添加对话框,右键添加类MyDlg 双击初始对话框中的按钮,实现按钮功能:点击则创建一个对话框 CMyDialog* pDialog = new ...

  3. nginx搭建文件服务器配置文件

    worker_processes 1; events { worker_connections 1024;} http { include mime.types; default_type appli ...

  4. zookeeper更进一步(数据模型、watcher及shell命令)

    ZooKeeper数据模型 ZooKeeper 的数据模型,在结构上和标准文件系统的非常相似,拥有一个层次的命名空间,都是采用树形层次结构,ZooKeeper 树中的每个节点被称为—Znode.和文件 ...

  5. php扩展开发环境搭建

    首先要安装编译php时要的几个扩展库 (1)libxml2,若无php安装一些解析xml的扩展时会提示xml2-config not found sudo apt-get install libxml ...

  6. linux 压力测试工具 webbench

    webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装: 1. wget htt ...

  7. java日期和时间转换字符

    日期和时间转换字符 字符 描述 例子 c 完整的日期和时间 Mon May 04 09:51:52 CDT 2009 F ISO 8601 格式日期 2004-02-09 D U.S. 格式日期 (月 ...

  8. javascript DES加密

    研究联通wifi登陆中,发现了一个名为"encryption.js"的文件.这个文件一看即知是加密过的,首先自己尝试去手工解密,看到太烦琐了,忽然想到网上有js解密工具,遂决定用来 ...

  9. JavaWeb中的路径问题

    JavaWEB 开发中的 / 的含义 ①.当前WEB应用的根路径(http://localhost:8080/contextPath/) 请求转发时:request.getRequestDispath ...

  10. C# Socket通信改进记录

    1. Socket 使用原始Socket,Send和Recv方法 进行发送和消息获取.(另起后台线程 不停获取和发送) public void RecvMsg() { //receive messag ...