摘要:
40行代码实现zonejs 之前看到过别人写过一个40行代码实现Vue中的Reactivity功能,觉得蛮好玩的。Angular的变更检测是基于Zonejs的。市面上也有一些文章介绍zonejs,我也读过好多遍Zonejs的源码。所以,我也来了个40行代码实现ZoneJs的。这个是我的github。 阅读全文
摘要:
ZoneJs 源码解析 ZoneJs是什么,它能干什么,它是怎么做到的? Zone是为js的执行提供了一个共享的数据上下文。为js函数执行维护了一个逻辑上的调用栈。 同时提供了对于函数执行方法的拦截,在函数执行前后,添加一些通用的逻辑(例如日志,异常处理)。 统一的任务模型,提供对于宏任务/微任务/ 阅读全文
摘要:
React Fiber调度算法笔记 React 从v16开始引入了Fiber,为了支持时间分片,优先调度,支持渲染过程中中断,恢复。中断是为了让浏览器有机会响应更高优先级的事件。刚看到这个功能的时候就开始猜想,js是单线程的,要实现这个功能,React的渲染过程得自己将任务分片,每次执行一个分片,然 阅读全文
摘要:
Webpack 打包实战 本文从一个简单的例子出发,比较一下,我们的代码经过webpack 打包后会变成啥样,带有HMR的情况下,会有什么不同 我们的代码 // index.js import {greeting} from './moduleA' let cleanup=null; functio 阅读全文
摘要:
介绍一下webpack hmr相关的API webpack首先将模块变成对象的一个属性,该属性是一个方法,调用它就返回最新的模块。模块的变更就变成了更新这些方法的定义。其次,webpack对于我们代码的import,做了拦截,会变成从它的模块对象里面去读取模块,同时它做了缓存。最后,当模块变化的时候 阅读全文
摘要:
single-spa 源码解析 single-spa是一种微前端的实现方案。阿里的qiankun其实是基于这个项目做了二次开发,其实是做了个拓展,提供了html解析与js沙盒两个功能。本文从single-spa的代码实现角度解析一下它的实现原理。 前提假设 single-spa首先要求每个子应用需要 阅读全文
摘要:
BaseHref 以及前端路由的问题 Base Href 是什么? MDN, 说的直白一点就是,这个站点里面所有的访问主站的资源文件,都会在路由前面加上这个base href,包括*js,scss,image,ajax,......**。 如果一个DOM 里面有多个这样的base,只有第一个会起作用 阅读全文
摘要:
最近研究Strapi 源码,偶尔看到request-compose这个包,看到一个很简单很有用的compose方法的实现。 compose(...fns)(args),这个是compose方法的使用形式,它的目的是将某个参数按顺序依次传递给每个方法,前一个方法的返回是第二个方法的参数。它的难点是,这 阅读全文
摘要:
Next-Auth 源码解析 简单介绍一下Next-Auth 源码的结构 目录简介 我们看packages/next-auth/src,这个目录下面是根目录,我们会看到下面的结构 --src -- client // 这个里面主要是封装了fetch 这个方法 -- core // 这个是主要的方法, 阅读全文
摘要:
Signal in Angular Angular 16+ 开始引入了 Signal,按照官方的说法是为了替代 zone。当第一眼看到signal,我曾遐想翩翩,立刻想到了 Vue 中的Ref,又想到了mobx。然而,Angular 官方给的例子居然用了一个count,一个计数的例子。它居然不用对象 阅读全文