掌握JavaScript中的IoC 发表于 2020-11-25 IoC,控制反转(Inversion of Control)。它是依赖倒置原则(Dependence Inversion Principle)的一种实现方式,也就是面向接口编程。IoC的实现借助于第三方容器,可以解耦具有依赖关系的对象,降低开发维护成本。 接下来我们一起通过一个完整的示例来进一步了解 ... 阅读全文 »
前端新玩具Vite 发表于 2020-07-12 知识储备 掌握ES Modules特性 了解HTTP 2标准 相关介绍Vite的定义面向现代浏览器的一个更轻、更快的Web应用开发工具,基于ECMAScript标准原生模块系统(ES Modules)实现 Vite的由来如果应用比较复杂,使用Webpack的开发过程相对没有那么丝滑。 Webp ... 阅读全文 »
Deno快速上手指北 发表于 2020-06-20 Deno 是 V8 上的安全 TypeScript 运行时。 无 package.json (去中心化)、npm,不追求兼容 Node 采用Rust编写(最初使用Go) 支持 TypeScript 开箱即用,使用 V8 6.8.275.3 引擎 Modern JS, ES Modules , ... 阅读全文 »
一个极简的React-Hooks状态管理库的实现 发表于 2020-05-23 前端技术的发展日新月异,vue,react,angular等的兴起,为我们带来了新的开发体验。但随着技术的革新,以及前端页面复杂度的提升,对应有localStorage,eventBus,vuex,redux,mobx,rxjs等数据存储和管理的方案,所以觉得研究状态管理还是很有必要的。 当然,使用 ... 阅读全文 »
大前端时代下的微前端如何做 发表于 2020-05-11 微前端的定义微前端本质是是一种项目架构方案,是为了解决前端项目太过庞大,导致项目管理维护难、团队协作乱、升级迭代困难、技术栈不统一等等问题,有点类似微服务的概念,是将微服务理念扩展到前端开发的一种应用. 微前端出现在我们的视线的次数越来越多,因为to B 的发展越来越迅猛,导致中后台应用需求激增,如 ... 阅读全文 »
SSR踩坑集锦 发表于 2020-05-03 研究SSR距现在有些年头了了,这里总结我当时踩过的和看到的坑,为同样在研究SSR的小伙伴节省时间成本,最重要的是怕自己忘了。。。 直奔主题使用服务端渲染常见问题: 过滤CSS和图片文件12345678910111213141516171819202122// SSR环境对样式文件处理csshook( ... 阅读全文 »
从ChromeV8源码看JS数组 发表于 2020-04-02 简介数组、链表、栈、队列都是线性表,它表示的结构都是一段线性的结构,与之对应的就是非线性表,例如树、图、堆等,它表示的结构都非线性。 本节主要介绍 JavaScript 数组,在开始本章节前,思考一个问题: 我们知道在 JavaScript 中,可以在数组中保存不同类型值,并且数组可以动态增长,不像 ... 阅读全文 »
APP唤起那点破事 发表于 2020-03-21 JavaScript 是运行在一个单独的 JS Context 中(例如,WebView 的 Webkit 引擎、JSCore)。由于这些 Context 与原生运行环境的天然隔离,我们可以将这种情况与 RPC(Remote Procedure Call,远程过程调用)通信进行类比,将 Native ... 阅读全文 »
你可能不知道的eval的妙用 发表于 2020-03-04 前言eval() 是 JavaScript 中一个非常有用的函数,它可以一段代码字符串动态执行。然而各种编码规范和最佳实践都强烈抵制 eval,几乎将 eval 打入了死牢,大牛 Douglas Crockford 也在《JavaScript 语言精粹》一书中将 eval 视为 JavaScript ... 阅读全文 »
浏览器和Node的Event-Loop 发表于 2020-03-02 浏览器中的事件循环JavaScript代码的执行过程中,除了依靠函数调用栈来搞定函数的执行顺序外,还依靠任务队列(task queue)来搞定另外一些代码的执行。整个执行过程,我们称为事件循环过程。一个线程中,事件循环是唯一的,但是任务队列可以拥有多个。任务队列又分为macro-task(宏任务)与 ... 阅读全文 »