[TOC]
抽象语法树 AST(Abstract Syntax Tree)将我们所写的代码转化为机器能识别的一种树形结构。本身有一堆节点(Node)构成。每个节点都代表一种结构,不同结构用类型(Type)区分。
AST 结构JS 为了统一 ECMAScript 标准,社区中衍生出了 ESTree Spec 标准。
节点类型
类型
说明
File
文件(顶层节点包含 Program)
Program
程序(包含 body)
Directive
指令(如 “use strict”)
Comment
注释
Statement
语句
Literal
字面量(基本...
[TOC]
Vite(读音veet)
一个开发服务器。基于原生 ESM 提供了丰富的内建功能,如速度惊人的模块热更新(HMR)。
一套构建指令。用预配置的 Rollup 打包生产代码,可输出高度优化的静态资源。
提供开箱即用的配置。插件 API 和 JavaScript API 带来高度可扩展性。
解决问题:
缓慢的服务器启动。
缓慢的更新。
优化服务器启动时间
Vite 将模块分为依赖和源码。
依赖基本不变。Vite 使用 esbuild 预构建依赖,用 Go 编写的 esbuild 构建比传统的 JS 快 10 倍。
源码时常变化,且并不是所有源码需要同时被加载。Vite ...
[TOC]
RollupRollup 是一个 JS 模块打包工具,用 ES6 的格式来打包。
ES 模块带来的优势
是官方标准,是明确的未来发展方向
CommonJS 是一种特殊的兼容格式,是临时解决方案
ES 模块允许静态分析,可以辅助优化(如 Tree-shaking 和作用域提升),并提供高级功能(如循环引用和实时绑定)
Tree-shaking
ES 模块带来的优势。
即“保留有用代码”。在 Rollup 中使用,用于消除未使用的代码。
该名称源自模块的抽象语法树,和“标记-清除”垃圾收集算法类似。
Rollup 使用命令行对于浏览器,Rollup 可以打包成 ES6 模...
[TOC]
React 18 新特性新的 ReactHooksuseTransition 和 startTransition,即过渡更新模式(Transition Mode)可以将某些状态更新标记为不紧急的。
相比于 setTimeout
startTransition 是立刻执行的,setTimeout 是延迟执行的。
startTransition 可被中断的,setTimeout 是阻塞的。
12345678const [isPending, startTransition] = useTransition();const [count, setCount] = useSt...
[TOC]
VercelVercel 是一个云平台,用于构建、部署和扩展无服务应用程序和静态网站。
Vercel 同时也在赞助 Next.js。Next.js 是一个 React 框架,用于构建静态和动态网站。
Vercel 前身是 ZEIT,是一个云服务提供商,提供部署、托管和监控 Node.js 应用程序的服务。
特点
前端代码的零配置无缝部署
实时洞察、分析和性能指标
“无限”可扩展性
边缘网络(CDN、缓存、边缘功能)
静态资产托管(图像、媒体)
部署预览和 A/B 测试
99.99% 正常运行时间
基于 Git 的工作流
个人免费套餐
客户端相关WebViewWebView 是一种嵌入到客户端的浏览器控件,可以加载网页,展示 HTML 内容。
Android
基于 WebKit 的 WebView:在 Android 4.4 之前,Android 使用的是基于 WebKit 的 WebView。
基于 Cromiun 的 WebView:从 Android 4.4 开始,为开发者提供了基于 Cromiun 的 WebView,性能、安全、功能更好,支持 HTML5、CSS3 和 JS 新特性。
iOS
UIWebView:UIWebView 是 iOS 2.0 时期引入的,是一个基于 WebKit 的控件。
支持...
页面优化相关指标用户体验指标
FP(First Paint):首次绘制时间,即浏览器首次将像素绘制到屏幕的时间。即白屏结束时间。
FCP(First Contentful Paint):首次内容绘制时间,即浏览器首次绘制 DOM 元素的时间。
FMP(First Meaningful Paint):首次有意义的绘制时间,即首次有意义的内容绘制到屏幕的时间。Lighthouse 6.0 已弃用,优先使用 LCP。
LCP(Largest Contentful Paint):最大内容绘制时间,即页面中最大的元素绘制到屏幕的时间。即首屏结束时间。
TTI(Time To Interacti...
整理几道常见的 hard 题目。
整理几道并查集 + DFS 的题目。
整理几道常见的 medium 题目。