精读《vue-lit 源码》

2022-02-14
阅读 7 分钟
5.1k
defineComponent 定义 custom element,第一个参数是自定义 element 组件名,必须遵循原生 API customElements.define 对组件名的规范,组件名必须包含中划线。

精读《pipe operator for JavaScript》

2022-02-07
阅读 5 分钟
2.5k
Pipe Operator (|>) for JavaScript 提案给 js 增加了 Pipe 语法,这次结合 A pipe operator for JavaScript: introduction and use cases 文章一起深入了解这个提案。概述Pipe 语法可以将函数调用按顺序打平。如下方函数,存在三层嵌套,但我们解读时需要由内而外阅读,因为调用顺序是由内而外的: {代码...} Pipe ...

精读《zustand 源码》

2022-01-24
阅读 8 分钟
6.2k
zustand 是一个非常时髦的状态管理库,也是 2021 年 Star 增长最快的 React 状态管理库。它的理念非常函数式,API 设计的很优雅,值得学习。

精读《2021 前端新秀回顾》

2022-01-17
阅读 6 分钟
2.7k
2021 JavaScript Rising Stars 每年都会对前端开源项目进行点评,其依据是去年 Star 的增幅。Star 虽然只是一个维度,但至少反应了流行度,根据这个排行榜可以大体分析出前端社区的趋势。

精读《Excel JS API》

2022-01-10
阅读 3 分钟
3k
Excel 现在可利用 js 根据单元格数据生成图表、表格,或通过 js 拓展自定义函数拓展内置 Excel 表达式。我们来学习一下 Excel js API 开放是如何设计的,从中学习到一些开放 API 设计经验。API 文档:Excel JavaScript API overview精读Excel 将利用 JS API 开放了大量能力,包括用户能通过界面轻松做到的,也包括无法通...

精读《Records & Tuples for React》

2022-01-04
阅读 6 分钟
2.4k
其实我比较担忧浏览器是否能将 Records & Tuples 性能优化得足够好,这将是它能否大规模应用,或者说我们是否放心把问题交给它解决的最关键因素。本文基于浏览器可以完美优化其性能的前提,一切看起来都挺美好,我们不妨基于这个假设,看看 Records & Tuples 提案能解决哪些问题吧!

精读《Records & Tuples 提案》

2021-12-27
阅读 12 分钟
2.8k
immutablejs、immer 等库已经让 js 具备了 immutable 编程的可能性,但还存在一些无解的问题,即 “怎么保证一个对象真的不可变”。

精读《深入了解现代浏览器四》

2021-12-20
阅读 4 分钟
2.7k
前几章介绍了浏览器的基础进程、线程以及它们之间协同的关系,并重点说到了渲染进程是如何处理页面绘制的,那么最后一章也就深入到了浏览器是如何处理页面中事件的。

精读《深入了解现代浏览器三》

2021-12-13
阅读 3 分钟
2.3k
浏览器 tab 内 html、css、javascript 内容基本上都由 renderer process 的主线程处理,除了一些 js 代码会放在 web worker 或 service worker 内,所以浏览器主线程核心工作就是解析 web 三剑客并生成可交互的用户界面。

精读《深入了解现代浏览器二》

2021-12-06
阅读 4 分钟
2.5k
在上一篇介绍了,browser process 包含 UI thread、network thread 和 storage thread,当我们在浏览器菜单栏输入网址并敲击回车时,这套动作均由 browser process 的 UI thread 响应。

精读《深入了解现代浏览器一》

2021-11-29
阅读 4 分钟
3.8k
虽然本文写于 2018 年,但如今依然值得学习,因为浏览器实现非常复杂,从细节开始学习很容易迷失方向,缺乏整体感,而这篇文章从宏观层面开始介绍,几乎没有涉及代码实现,全都是思路性的描述,非常适合培养对浏览器整体框架性思维。

精读《Rust 是 JS 基建的未来》

2021-11-22
阅读 6 分钟
5.2k
Rust Is The Future of JavaScript Infrastructure 这篇文章讲述了 Rust 正在 JS 基建圈流行的事实:Webpack、Babel、Terser、Prettier、ESLint 这些前些年才流行起来的工具都已有了 Rust 替代方案,且性能有着 10~100 倍的提升。

精读《15 大 LOD 表达式 - 下》

2021-11-15
阅读 5 分钟
2.6k
接着上一篇 精读《15 大 LOD 表达式 - 上》 ,这次继续总结 Top 15 LOD Expressions 这篇文章的 9~15 场景。9. 某时间段内最后一天的值如何实现股票平均每日收盘价与当月最后一天收盘价的对比趋势图?如图所示,要对比的并非是某个时间段,而是当月最后一天的收盘价,因此必须要借助 LOD 表达式。设想原表如下:DateTic...

精读《15 大 LOD 表达式 - 上》

2021-11-08
阅读 5 分钟
2.4k
通过上一篇 精读《什么是 LOD 表达式》 的学习,你已经理解了什么是 LOD 表达式。为了巩固理解,结合场景复习是最有效的手段,所以这次我们结合 Top 15 LOD Expressions 这篇文章学习 LOD 表达式的 15 大应用场景,因篇幅限制,本文介绍 1~8 场景。

精读《什么是 LOD 表达式》

2021-11-01
阅读 3 分钟
3.7k
LOD 表达式在数据分析领域很常用,其全称为 Level Of Detail,即详细级别。精读什么是详细级别,为什么需要 LOD?你一定会有这个问题,我们来一步步解答。什么是详细级别可以尝试这么发问:你这个数据有多详细?得到的回答可能是:数据是汇总的,抱歉看不到细节,不过如果您正好要看总销量的话,这儿都给您汇总好了。。...

精读《web streams》

2021-10-25
阅读 7 分钟
3.2k
Node stream 比较难理解,也比较难用,但 “流” 是个很重要而且会越来越常见的概念(fetch 返回值就是流),所以我们有必要认真学习 stream。

精读《Prisma 的使用》

2021-10-18
阅读 9 分钟
6.3k
ORM(Object relational mappers) 的含义是,将数据模型与 Object 建立强力的映射关系,这样我们对数据的增删改查可以转换为操作 Object(对象)。

精读《可维护性思考》

2021-10-11
阅读 4 分钟
2.6k
前端精读之前写了 23 篇设计模式总结文,再加上 6 种设计原则,开闭、单一职责、依赖倒置、接口分离、迪米特法则、里氏替换原则,基本上对代码的可维护性有了全面深刻的理解。

精读《Microsoft Power Fx》

2021-09-27
阅读 3 分钟
3.5k
Power Fx 的创建是为了更好的辅助非专业开发人员,因此这门语言被设计的足够简单,希望这门语言可以同时服务于专业与非专业开发者,这是个非常崇高的理想。

精读《class static block》

2021-09-13
阅读 3 分钟
2.6k
为什么我们需要 class static block 这个语法呢?其中一个原因是对 Class 静态变量的灵活赋值需求。以下面为例,我们想在 Class 内部对静态变量做批量初始化,就不得不写一个无用的 _ 变量用来做初始化的逻辑:

精读《捕获所有异步 error》

2021-09-06
阅读 4 分钟
5.8k
成熟的产品都有较高的稳定性要求,仅前端就要做大量监控、错误上报,后端更是如此,一个未考虑的异常可能导致数据错误、服务雪崩、内存溢出等等问题,轻则每天焦头烂额的处理异常,重则引发线上故障。

精读《Typescript 4.4》

2021-08-30
阅读 5 分钟
3.2k
类型收窄功能非常方便,它可以让 Typescript 尽可能的像 Js 一样自动智能判定类型,从而避免类型定义的工作,让你的 Typescript 写得更像 Js。

精读《Typescript infer 关键字》

2021-08-23
阅读 3 分钟
5.5k
理解为:如果 T 继承了 extends (...args: any[]) => any 类型,则返回类型 R,否则返回 any。其中 R 是什么呢?R 被定义在 extends (...args: any[]) => infer R 中,即 R 是从传入参数类型中推导出来的。

精读《一种 Hooks 数据流管理方案》

2021-08-16
阅读 5 分钟
4.2k
维护大型项目 OR UI 组件模块时,一定会遇到全局数据传递问题。维护项目时,像全局用户信息、全局项目配置、全局功能配置等等,都是跨模块复用的全局数据。维护 UI 组件时,调用组件的入口只有一个,但组件内部会继续拆模块,分文件,对于这些组件内模块而言,入口文件的参数也就是全局数据。这时一般有三种方案:props ...

精读《JS with 语法》

2021-08-09
阅读 2 分钟
2.4k
with 是一个不推荐使用的语法,因为它的作用是改变上下文,而上下文环境对开发者影响很大。本周通过 JavaScript's Forgotten Keyword (with) 这篇文章介绍一下 with 的功能。概述下面是一种使用 with 的例子: {代码...} 我们往上下文注入了 console 对象,而 console.log 这个属性就被注册到了这个 Scope 里。再比如: ...

精读《默认、命名导出的区别》

2021-08-02
阅读 4 分钟
4.9k
从代码可维护性角度出发,命名导出比默认导出更好,因为它减少了因引用产生重命名情况的发生。但命名导出与默认导出的区别不止如此,在逻辑上也有很大差异,为了减少开发时在这方面栽跟头,有必要提前了解它们的区别。本周找来了这方面很好的的文章:export-default-thing-vs-thing-as-default,先描述梗概,再谈谈我的...

精读《算法 - 二叉搜索树》

2021-07-19
阅读 3 分钟
2.4k
二叉搜索树的特性是,任何一个节点的值:都大于左子树任意节点。都小于右子树任意节点。因为二叉搜索树的特性,我们可以更高效的应用算法。精读还记得 《算法 - 二叉树》 提到的 二叉树的最近公公祖先 问题吗?如果这是一颗二叉搜索树,是不是存在更巧妙的解法?你可以暂停先思考一下。二叉搜索树的最近公共祖先二叉搜索...

精读《React 18》

2021-07-12
阅读 5 分钟
6.9k
React 18 带来了几个非常实用的新特性,同时也没有额外的升级成本,值得仔细看一看。下面是几个关键信息:React 18 工作小组。利用社区讨论 React 18 发布节奏与新特性。发布计划。目前还没有正式发布,不过 @alpha 版已经可用了,安装 alpha 版。React 18 新特性介绍。虽然还未正式发布,但特性介绍可以先行,本周精读...

精读《算法 - 二叉树》

2021-07-05
阅读 5 分钟
2.8k
二叉树可以根据一些特性,比如搜索二叉树,将查找的时间复杂度降低为 logn,而且堆这种数据结构,也是一种特殊的二叉树,可以以 O(1) 的时间复杂度查找最大值或者最小值。所以二叉树的变种很多,都可以很好的解决具体场景的问题。

精读《算法 - 回溯》

2021-06-28
阅读 6 分钟
3.9k
如何尝试走迷宫呢?遇到障碍物就从头 “回溯” 继续探索,这就是回溯算法的形象解释。更抽象的,可以将回溯算法理解为深度遍历一颗树,每个叶子结点都是一种方案的终态,而对某条路线的判断可能在访问到叶子结点之前就结束。相比动态规划,回溯可以解决的问题更复杂,尤其是针对具有后效性的问题。动态规划之所以无法处理...