熟悉事件循环?那谈谈为什么会分为宏任务和微任务
在了解事件循环前,需要一些有关 JS 特性的前置知识。JS 引擎是单线程的,直白来说就是一个时间点下 JS 引擎只能去做一件事情,而 Java 这种多线程语言,可以同时做几件事情。
这篇手写 Promise 你一定要康康
最近重温了一下 Q/Promise的设计讲解,结合自己的理解和一些小优化,决定也来写一篇手写 Promise 的文章。我们先以观察者模式作为基石来搭建一个基础版本,实现的功能如下:
为什么Hook没有ErrorBoundary?
在很多全面使用Hooks开发的团队,唯一使用ClassComponent的场景就是使用ClassComponent创建ErrorBoundary。可以说,如果Hooks存在如下两个生命周期函数的替代品,就能全面抛弃ClassComponent了:
数据库bigInt,后端Long类型定义的ID,导致前端与后台不一致
项目开发中前后端数据交互常会使用id作为主键索引,通常id数值都不大,使用number类型就可以表示处理,但对于一些分布式id或其他情况,后台数据库使用雪花ID,数据库使用bigInt类型存储
webpack打包时如何修改文件名
在使用webpack进行项目打包的时候,我们可通过以下方式对不同类型的资源,进行文件名或文件路径的修改,使用copy-webpack-plugin插件复制的文件,这个就是配置from和to
Base64编码知识详解
在我们进行前端开发时,针对项目优化,常会提到一条:针对较小图片,合理使用Base64字符串替换内嵌,可以减少页面http请求。并且还会特别强调下,必须是小图片,大小不要超过多少KB,等等。
一文读懂 TypeScript 泛型及应用
泛型是静态类型语言的基本特征,允许将类型作为参数传递给另一个类型、函数、或者其他结构。TypeScript 支持泛型作为将类型安全引入组件的一种方式。
爱彼迎将JavaScript代码打包工具从Webpack改用Metro,缩短了构建时间
与许多大规模公司一样,随着代码库不断变大,爱彼迎也在打包工具方面经历了阵痛。即使代码库增至四倍,爱彼迎在2018年将JavaScript代码打包工具从Webpack迁移到Metro后,还是加快了对前端的UX更改。
JavaScript 的var、let 与const
JavaScript 因为历史悠久, 所以你可能会遇到经过多人更改过的JavaScript 程式, 里面混杂了不同时期JavaScript 的语法, 导致有时候JavaScript 程式就是难懂, 本文将针对宣告变数的几种方法加以说明, 期望能让大家快速理解其中的差别。