到今天为止终于刷完了胡子大哈的React小书,一开始就是冲着对Redux的理解去的,期间也在课后练习的ScriptOj上完成了小书推荐的题目,第三章是收费的,但是服务器好像挂了,邮件都收不了。。。后来发现react小书网站的第三章就是靠js增加了一层蒙版弹窗。。。在Chrome里把这个页面禁用js就可以看了。。。。

React小书地址:链接

ScriptOj地址:链接

我的ScriptOj AC代码:链接

我的练习笔记代码:链接

一些笔记?

  1. 组件化,可以写一个component,然后引用的时候传入参数,在component里用this.props读取,更加定制话组件,比如组件的大小和位置。

  2. redux的观察者模式,即数据发生变化时自动帮我们在dispatch的时候renderApp重新渲染页面

    具体实现一个观察者模式的例子,我们可以自己写一个EventEmitter,在scriptOj上刚好有这么一道题,题目链接,我的代码:github代码链接
    (观察者模式在前端开发中非常常用,我们经常用的事件就是观察者模式的一种体现。它对我们解耦模块、开发基于消息的业务起着非常重要的作用。Node.js 原生自带 EventEmitter 模块,可见它的重要性。)

    • 高阶组件就是一个函数,传给它一个组件,它返回一个新的组件。新的组件使用传入的组件作为子组件。
    • 高阶组件的作用是用于代码复用,可以把组件之间可复用的代码、逻辑抽离到高阶组件当中。新的组件和传入的组件通过 props 传递信息。
    • 高阶组件有助于提高我们代码的灵活性,逻辑的复用性。灵活和熟练地掌握高阶组件的用法需要经验的积累还有长时间的思考和练习,如果你觉得本章节的内容无法完全消化和掌握也没有关系,可以先简单了解高阶组件的定义、形式和作用即可。
  3. Dumb组件和Smart组件:

    • Dumb组件只依赖外部props,产出值不依赖全部变量,类似纯函数的高可服用性组件。
    • 当我们拿到一个需求开始划分组件的时候,要认真考虑每个被划分成组件的单元到底会不会被复用。如果这个组件可能会在多处被使用到,那么我们就把它做成 Dumb 组件。
    • Smart 组件。它们专门做数据相关的应用逻辑,和各种数据打交道、和 Ajax 打交道,然后把数据通过 props 传递给 Dumb,它们带领着 Dumb 组件完成了复杂的应用程序逻辑。
    • Smart 组件不用考虑太多复用性问题,它们就是用来执行特定应用逻辑的。Smart 组件可能组合了 Smart 组件和 Dumb 组件;但是 Dumb 组件尽量不要依赖 Smart 组件。因为 Dumb 组件目的之一是为了复用,一旦它引用了 Smart 组件就相当于带入了一堆应用逻辑,导致它无法无用,所以尽量不要干这种事情。一旦一个可复用的 Dumb 组件之下引用了一个 Smart 组件,就相当于污染了这个 Dumb 组件树。如果一个组件是 Dumb 的,那么它的子组件们都应该是 Dumb 的才对。
  4. reducer不一定必须要和action分开,其实多数情况下特定的 action 只会影响特定的 reducer,直接放到一起可以更加清晰地知道这个 action 其实只是会影响到什么样的 reducer。而分开会给我们维护和理解代码带来额外不必要的负担,这有种矫枉过正的意味。
    胡子大哈写 reducer 文件的习惯,仅供参考:
    **定义 action types
    **编写 reducer
    **跟这个 reducer 相关的 action creators

《React小书》终结笔记相关推荐

  1. React.js 小书 Lesson18 - 挂载阶段的组件生命周期(一)

    React.js 小书 Lesson18 - 挂载阶段的组件生命周期(一) 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson18 转载请注 ...

  2. React.js 小书 Lesson12 - state vs props

    React.js 小书 Lesson12 - state vs props 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson12 转载请注 ...

  3. React.js 小书 Lesson14 - 实战分析:评论功能(一)

    React.js 小书 Lesson14 - 实战分析:评论功能(一) 本文作者:胡子大哈 本文原文:http://react.huziketang.com/blog/lesson14 转载请注明出处 ...

  4. React.js 小书 Lesson27 - 实战分析:评论功能(六)

    React.js 小书 Lesson27 - 实战分析:评论功能(六) 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson27 转载请注明出 ...

  5. React.js 小书 Lesson5 - React.js 基本环境安装

    React.js 小书 Lesson5 - React.js 基本环境安装 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson5 转载请注明 ...

  6. React.js 小书 Lesson15 - 实战分析:评论功能(二)

    作者:胡子大哈 原文链接: http://huziketang.com/books/react/lesson15 转载请注明出处,保留原文链接和作者信息. 上一节我们构建了基本的代码框架,现在开始完善 ...

  7. React.js 小书 Lesson24 - PropTypes 和组件参数验证

    作者:胡子大哈 原文链接: http://huziketang.com/books/react/lesson24 转载请注明出处,保留原文链接和作者信息. 我们来了到了一个非常尴尬的章节,很多初学的朋 ...

  8. React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起

    React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson2 ...

  9. React.js小书总结

    (迁移自旧博客2017 08 27) 第一阶段 react的组件相当于MVC里面的View. react.js 将帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合.嵌套,就成 ...

  10. 重磅!深度学习圣经“花书”核心笔记、代码发布

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 <深度学习>,又名"花书".该书由三位大佬 Ian Goodf ...

最新文章

  1. C语言实现,设计一个将所有奇数移动到偶数之前的算法
  2. IE9(测试版)浏览器实用快捷键使用方法
  3. 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】...
  4. 低噪声放大器和高功放的区别
  5. main执行之前与之后
  6. Spring+Mybatis多数据源配置(三)——Spring如何获取Properties文件的信息
  7. Linux下设置和查看环境变量
  8. 用自定义注解做点什么——自定义注解有什么用
  9. iOS原生推送(APNS)进阶iOS10推送图片、视频、音乐
  10. React 第五章 state 组件生命周期
  11. Python文件的读取与写入
  12. TextView赋值int型,并显示
  13. win10千万不要重置_小白不要再用“一键重装系统”了,后果很严重!
  14. 文件读写处理:古诗问题
  15. 超级爆笑:2008高考各省零分作文大全
  16. 技能冷却: 判断技能 释放技能
  17. as ssd测试软件得分少,教大家AS SSD Benchmark如何测试硬盘性能
  18. TX-LCN分布式事务原理介绍
  19. 生成全局唯一ID的3个思路,来自一个资深架构师的总结
  20. 预渲染与服务端渲染的区别

热门文章

  1. 在小程序中使用百度地图
  2. Linux 设置Dlan服务器
  3. 永远跳票的 永远的毁灭公爵
  4. hadoop2.6.0 - eclipse插件下载、编译、安装、配置
  5. java messagedigest_JAVA MessageDigest(MD5加密等)
  6. 天正结构TAsd8.2 天正规划与景观设计软件7.5 及注册机
  7. w10 计算机配置管理模板,Win10系统这些设置能提高电脑的使用效率
  8. hsqldb mysql_安装HSQLDB
  9. 【一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成】
  10. 爬虫实战(二)之登录百度云盘