前端开发
-
编译原理之 PEG.js
引言 在编译原理之手写一门解释型语言[1]中我们全手动写了一个 Parser 来解析我们的脚本,实际上有现成的工具可以更加方便地完成这个工作,比如 PEG.js。该工具通过解析语法…
-
React 源码解读之协调过程(一)
引言 在React 源码解读之首次渲染流程[1]中我们讲到了 React 在首次渲染过程(其实更新过程也一样)中存在 Render 和 Commit 两大阶段,其中 Render …
-
React 源码解读之协调过程(二)
引言 上篇文章介绍了 React 协调过程中 beginWork 阶段的前半部分,这篇文章我们来介绍后半部分。 beginWork 同样的,我们还是精简一下代码,只关注感兴趣的部分…
-
React 源码解读之 Context
引言 React 源码系列继续进行,今天来讲讲 Context 相关的内容。从何讲起呢?我们还是先从一个案例开始吧: import React, { …
-
React 源码解读之 Automatic Batching
引言 最近,React 团队给出了 React 18 版本的计划[1],其中提到了一个优化:Automatic Batching。关于该优化,React 成员之一 Dan 在 Gi…
-
React 远程动态组件实践
背景 想象有这样一个场景:A 团队开发了一套组件库,B 和 C 团队都在各自的业务项目中使用了该组件库。现在 A 团队需要对某个组件进行更新(比如修改颜色),按照以往的做法,A 团…
-
React Native 按需加载实战(一)
引言 React Native 应用默认会将我们的 JS 代码打包成一个文件,当我们的 React Native 应用变得很庞大了以后,一次性下载所有 JS 代码往往耗时很长,这时…
-
React Native 按需加载实战(二)
前言 上一篇文章介绍了如何对 React Native 项目的 JS 文件进行拆包,这次我们仍然用一个例子来演示如何按需加载拆包后的各文件。 目标 如上图所示,最终想实现如下效果:…
-
体验一把 React transition
引言 React 系列继续,今天来聊一聊 transition。话不多说,我们先用一个例子(React 18)来引入今天的主题: import {useState,&nb…
-
React SSR 之限流
引言 当对 React 应用进行页面加载或 SEO 优化时,我们一般会想到用 React SSR。但 React SSR 毕竟涉及到了服务端,有很多服务端特有的问题需要考虑,而限流…
-
浅学 WebAssembly(实现视频实时滤镜效果)
前言 WebAssembly 出来已经很久了,但是一直都没有实践过,实在是不应该,所以就趁这次国庆假期浅学一下吧。毛主席说过,“实践是检验真理的唯一标准”,所以我们今天就实现一个“…
-
搞清楚 Sentry Issues 页面几个重要的内容
前言 日常工作中已经用了很久的 Sentry 了,但是对一些概念和功能还是一知半解,比如:Event 和 Issues,fingerprint 等。趁这次 CY 风波之际,重新学习…
-
Node.js 高级编程之 cluster
前言 日常工作中,对 Node.js 的使用都比较粗浅,趁未羊之际,来学点稍微高级的,那就先从 cluster 开始吧。 鲁迅说过,“带着问题去学习是一个比较好的方法”,所以我们也…
-
Node.js 高级编程之 RPC
前言 在构建微服务时,为了追求极致的效率,服务间一般会使用 RPC(Remote Procedure Call)来进行通信。本文通过 Node.js 来实践一下。 Node.js …
-
当 Transfer-Encoding: chunked 遇上 HTTP2
背景 某日,Leader 说:“给我们的 SSR 服务整一下流式渲染吧!”。听完我心想:这不是小弟已经研究过的玩意吗。所以果断回答 OK 没问题。 一天之后,本地修改完毕,部署到 …
-
Node.js 高级编程之 Stream(我是跟 ChatGPT 学会的)
前言 在做 SSR Stream Render 的时候遇到了 Node.js 的 Stream,但是对其总是一知半解。正好最近 ChatGPT 很火,找他学一学吧,没想到真的把我教…