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

这一分支讲的是 如何完整地(不包含优化,也没有好看的页面) 搭建一个 增删改查 的 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. 使用class-dump

    [使用class-dump] 对于未加壳的Mach-O文件,class-dump可以从Mach-O的section中还原出objc代码的头文件.下面做一些关键演示,以及对关键问题进行说明. 1.标准用 ...

  2. SpringMVC简单的文件上传

    引入依赖包: <!-- 文件上传的依赖 --> <dependency> <groupId>commons-fileupload</groupId> & ...

  3. wangEditor富文本编辑器

    设置好了是这样的, 有一个ID问content的编辑框,方便获取,这里的富文本编辑器的版本是2.2 官方文档说3就不支持textarea了 导入一下css 记得css文件夹下应该又3个文件,虽然没有直 ...

  4. 性能优化之_android多线程

    本文大纲为: 如何创建线程 线程间如何通讯 线程间如何安全的共享信息 一.线程的创建 Thread在run方法中执行具体事务,或者传入一个runnable对象,但是不能调用view控件的更新方法,但是 ...

  5. El表达式 (先大致的记录下吧!以后慢慢深入)

    参考:http://blog.csdn.net/eson_15/article/details/51264269 1.获取数据采用 ${标识符} 的形式 request.setAttribute(&q ...

  6. Luogu 3261 [JLOI2015]城池攻占

    BZOJ 4003 需要实现一个可并堆. 每个点维护一个小根堆,然后一开始把所有骑士加入到它所在的点的小根堆当中,实际上空间是$O(m)$的,然后我们从上到下不断合并这个小根堆,合并完之后如果遇到堆顶 ...

  7. oracle数据库之数据插入、修改和删除

    作为一合格的测试人员对数据库的单表查询.多表查询.分组查询.子查询等等这些基本查询方法还是要会的.不然到企业中,容易被一些人鄙视,或者说如果数据库学不好,表查不明白,那么对自己能力来说也是一种侮辱,因 ...

  8. springMVC工作原理趣味解析

    springMVC 涉及的人有: 1:浏览器                2:DispatherServlet  3:Handler             4:HandlerAdapter     ...

  9. 来自网易云的黑科技,带尖角的div......

    今天在网易云的网页版听歌,话说Steve Vai的曲子永远是这么让人揣摩不透,不过我还时更喜欢老Joe,咦,跑题了··· 大家可以看到评论输入框和回复框,上面都有个小尖角,实现的方式有很多,我一般是用 ...

  10. 关于winform的appconfig的读写操作

    public string ReadConfig() { List<string> list = new List<string>(); ExeConfigurationFil ...