Recent posts

模块化的发展历史

模块化的发展历史

模块化编程是编程范式中结构化编程范式中的一种,是强调将计算机程序的功能分离成独立的、可相互改变的 “模块”(module)的软件设计技术,它使得每个模块都包含着执行预期功能的一个唯一方面(aspect)所必需的所有东西。

Watch 和 Computed 有什么区别

Watch 和 Computed 有什么区别

基本用法 /** watch */ watch: { firstName: function (val) { this.fullName = val + ' ' + this.lastName }, lastName: function (val) { this.fullName = this.firstName + ' ' + val } } /** computed */ computed: { now: function () { return Date.now() } } 可以发现, watch  和

Vuex 代码精读

Vuex 代码精读

序言 时隔多日,终于又有时间和精力来阅读源码了,这回挑的是和 redux 有些类似的 vuex,本来以为两者都是状态管理工具,大部分逻辑可能是重合的,但是没想到两者大相径庭,从代码哲学上就有分歧,具体实现更是相差甚远。 后面或许会另起一篇来具体描述一下两者的差异。 目录结构 src ├─ module │ ├─ module-collection.js // 模块树相关代码 │ └─ module.js // 单个模块相关代码 ├─ plugins │ ├─ devtool.js // devtool 插件 │ └─ logger.js // log 插件 ├─ helpers.js

Koa 的中间件完整流程 + 源码分析

Koa 的中间件完整流程 + 源码分析

Koa 的中间件原理总是一个被提问的问题,理论其实很简单,官方的洋葱模型其实就已经能够生动形象的解释中间件的运行机制了。但是,这么简单的解答又怎么能满足好奇心呢,所以这次,就又我来带大家走进 Koa 的中间件的世界(动物世界播音腔。

Redux 源码阅读笔记

Redux 源码阅读笔记

看完 Redux 的源码,可谓是收获颇丰,先不论对 Redux 本身。光是其中“中间件模式”的实现就够反复🤔琢磨了,其中 isPlainObject 🔧工具函数为了吃透它来了一场考古。往基础走,Redux 简直就是闭包的大型实现现场,applyMiddleware 中的闭包简直拍案叫绝。大部分笔记以注释的形式写在了源码文件里,虽然有点碎碎念,但是想来会有所帮助。