按课程小节整理了 Dan Abramov 两套课程的代码,已上传 github。Building React Applications with Idiomatic Redux 课程中,有部分老旧的代码,在 router v4 下不能正常运行,在这份练习代码中,支持了 v4。
------------ 2019/1/6 更新 ------------
在这个写总结和做展望的月份里,回顾了下这一年的阅读记录,精挑细选了几篇系列文章分享。希望无论是 JavaScript 初学者,还是进阶学习,都能从这份清单中获益。
NOTE: 文中部分链接需要梯子,部分文章是英文,有译文的直接放了译文,没有翻译的,如果想看译文,偷偷告诉你,可以给 掘金翻译计划 提 issue,推荐给他们翻译,然后就可以静等译文出炉了。
1. Dan Abramov 的 Redux 教程

Redux 作者 Dan Abramov 亲自教 Redux 入门,及最佳实践。总时长 4 小时多,每小节不到 10 分钟。也是第一次看英文视频教程,对着英文字幕连滚带爬的跟下来了,收获非常大,每个视频下面有视频的文本,看不懂的地方看文本。跟着高手写代码真是身心舒爽~
Building React Applications with Idiomatic Redux
2. DIY 一个 React

之前零零散散看过很多讲 React 内部原理的文章,但是大多不成体系,这套教程共 4 篇 + 1 篇,完整度和质量相当高,覆盖了 React 的核心功能,包括虚拟 DOM,JSX 相关,diff 算法(简化版),Component 和 State,React 16 中的 Fiber 等,而且讲解细致,难度梯度合理。diff 算法深入版推荐这篇文章 React 源码剖析系列 - 不可思议的 react diff。
Didact: a DIY guide to build your own React
Didact: Rendering DOM elements
Didact: Element creation and JSX
Didact: Instances, reconciliation and virtual DOM
Didact Fiber: Incremental reconciliation
3. DIY 双向数据绑定 & 计算属性

大多情况下赞数和文章质量是正相关的,但是如果只看赞数容易错过这两篇高质量文章。一年前翻译的,这一年反反复复的看了几遍,这么好的文章不能被更多的人看到,真的遗憾,一定是我翻译的标题不够好😢
[译] 如何使用 JavaScript 构建响应式引擎 —— Part 1:可观察的对象
[译] 如何使用 JavaScript 构建响应式引擎 —— Part 2:计算属性和依赖追踪
4. 从零开始学习函数式编程

这一系列截止我整理这篇文章的时候,已经出了 19 篇,并且 Eric Elliott 还在持续更新。掘金翻译计划基本上都做了翻译,我参与了其中一小部分的校对。介绍了柯里化,高阶函数,Reduce,Functor 与 Category,Monad,函数组合等函数式编程概念。
[合集] 在 JavaScript ES6+ 中从零开始学习函数式编程&组合式软件编写系列译文
5. 手写 Promise
Promise 用的越来越多,推荐两篇手写系列,简化版大致了解结构,升级版根据官方规范,了解源码,最终完成一个包括 Promise.all,Promise.race 等功能相对齐全的 Promise。
- 简化版
JavaScript Promises | Understand JavaScript Promises by Building a Simple Promise Example
- 升级版
6. 手写一个状态管理系统
很多库和框架可以帮助我们管理状态,比如 Redux,MobX 和 Vuex 等。这篇文章介绍自己动手写一个这样状态管理系统,用 Proxy(代理)监听数据变化,顺便手写一个发布/订阅模式。
- 原文
Build a state management system with vanilla JavaScript
- 译文
最后
文中很多文章,第一次读不能跟到最后,不过隔三差五的拿出来读上一遍,每次往前推进一点点,每次都有新理解。
能够遇到这篇中的几个文章,很感激这篇文章 我如何零基础转行成为一个自信的前端 的作者,比心❤️