正在查看source下的文章

有史以来最小的编译器源码解析

the-super-tiny-compiler
详细中文注释 the-super-tiny-compiler

阅读更多

redux-thunk 源码全方位剖析

前言

redux 的核心概念很简单:将需要修改的 state 都储存在 store 里,发起一个 action 用来描述发生了什么,用 reducers 描述 action 如何改变 state tree,创建 store 的时候需要传入 reducer,真正能改变 store 中数据的是 API store.dispatch。
纯粹使用 redux 时,我们需要 dispatch 的是一个 action 对象。当我们使用 redux-thunk 后,我们 dispatch 的是一个 function,redux-thunk 中间件会自动调用这个 function,并且传递 dispatch 方法作为其第一个参数,于是我们就能在这个 function 内根据我们的请求状态:开始,请求中,请求成功/失败,dispatch 我们期望的任何 action 了,这也是为什么它能支持异步 dispatch action,自然的请求的逻辑就需要放到这里面调用了。换言之,redux-thunk 改写了 dispatch API,使其具备接受一个函数作为参数的能力,从而达到 middleware 的效果,即在 redux 的 dispatch action => reducer => store 这个流程中,在 action 被发起之后,到达 reducer 之前的扩展点,加入相关操作,比如发生请求、log信息等。一句话:redux-thunk 就是对 store.dispatch() 的增强。

阅读更多

Vue 源码全方位剖析

版本:v2.5.17-beta.0

阅读更多

React 源码全方位剖析

版本:v16.5.2

阅读更多

redux 源码全方位剖析

版本:v4.0.0

阅读更多

vuex 源码全方位剖析

背景

Vue 火不火?我们看 github stars 就知道,现在已超越 React 了,国民的力量还是很强大的。我们在使用 Vue.js 开发应用时,经常会遇到多个组件共享同一个状态,也或者多个组件去更新同一个状态。对于简单的应用,我们可以

阅读更多

react-redux 源码全方位剖析

前言

作为前端攻城狮,我们大多都有使用过 Redux,即便没有使用,我相信听肯定听说过。Redux 是一款可预测的状态管理框架,主要提供一个数据存储中心,供外部访问、修改等,因此 Redux 本身和 React 没有什么本质关系。那么我们如何比较优雅的在 React 使用 Redux?传统方法我们可以在应用初始化时,将 store 挂载在 window 上:window.store = createStore(reducer),然后在需要的地方使用 Redux API:store.getState()store.dispatchstore.subscribe。。。现在虽然各个子组件都能够访问 store 了,但这里 store 就变成了全局变量。由于全局变量有诸多的缺点,我们不妨换个思路,把 store 直接集成到 React 应用的顶层 props 里面,然后通过 React 钩子 Context,各个子组件就能访问到顶层 props,例如:

阅读更多

Koa 源码全方位剖析

前言

Koa 基于 Node.js 平台的下一代 web 开发框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。使用 Koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。Koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。

阅读更多

vue-router-source-analysis

阅读更多