从源码分析几种中间件的实现方式
在前端比较熟悉的框架如express
、koa
、redux
和axios
中,都提供了中间件或拦截器的功能,本文将从源码出发,分析这几个框架中对应中间件的实现原理。
在前端比较熟悉的框架如express
、koa
、redux
和axios
中,都提供了中间件或拦截器的功能,本文将从源码出发,分析这几个框架中对应中间件的实现原理。
前段时间写了一个简易的类React框架:NeZha,现在打算加上服务端渲染的功能,并准备重构整个博客的同构渲染。本文将整理SSR在框架的项目构建方面的原理,然后进行简单实现。
动态规划是一种经典的算法。本文主要整理如何使用动态规划来解决一些问题。
在前面两篇文章中,我们研究了VNode的基础知识,了解了如何使用VNode描述并渲染视图,实现了递归diff和循环diff两种方案,并在循环diff中给出了一种简单的调度器实现方案。本文将紧接上两篇文章,一步一步思考并实现将VNode封装成组件。
在上一篇文章VNode与递归diff中,我们了解了VNode的作用,如何将VNode映射为真实DOM,并通过递归实现了diff操作,最后研究了三种不同的diff方式带来的性能差异。
本文将紧接上文,研究如何通过循环的方式实现diff,并在此基础上实现对应的调度系统,从而理解React
中的一些核心原理。
在工作中接触Vue
、React
大概有两三年了,最近一直在学习相关的技术原理,打算整理学习心得。本文深入研究虚拟DOMVNode
相关的技术实现,了解前端框架的基础。
虽然写了很长一段时间的Vue了,对于CSS Scoped
的原理也大致了解,但一直未曾关注过其实现细节。最近在重新学习webpack,因此查看了vue-loader
源码,顺便将从vue-loader
的源码中整理CSS Scoped
的实现。
单调栈是一种特殊类型的栈,可以用来解决一些特定问题,本文整理了构建单调栈的方式,以及单调栈的一些应用。
昨天遇见了一个关于flex-shrink
计算规则的问题,一时语塞,发现自己居然没有认真研究过这里面的东西,因此在合理整理了关于CSS中一些属性的计算规则。
最近一直在折腾React源码,后来发现有必要重新阅读Vue的源码,从设计思想和底层实现上了解两种框架的差异,因此有了这一篇文章。