08 2024 档案
摘要: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首先要求每个子应用需要
阅读全文