Orion's Studio.

Orion's Studio.

it's better to burn out than to fade away

Babel
[TOC] 抽象语法树 AST(Abstract Syntax Tree)将我们所写的代码转化为机器能识别的一种树形结构。本身有一堆节点(Node)构成。每个节点都代表一种结构,不同结构用类型(Type)区分。 AST 结构JS 为了统一 ECMAScript 标准,社区中衍生出了 ESTree Spec 标准。 节点类型 类型 说明 File 文件(顶层节点包含 Program) Program 程序(包含 body) Directive 指令(如 “use strict”) Comment 注释 Statement 语句 Literal 字面量(基本...
Vite
[TOC] Vite(读音veet) 一个开发服务器。基于原生 ESM 提供了丰富的内建功能,如速度惊人的模块热更新(HMR)。 一套构建指令。用预配置的 Rollup 打包生产代码,可输出高度优化的静态资源。 提供开箱即用的配置。插件 API 和 JavaScript API 带来高度可扩展性。 解决问题: 缓慢的服务器启动。 缓慢的更新。 优化服务器启动时间 Vite 将模块分为依赖和源码。 依赖基本不变。Vite 使用 esbuild 预构建依赖,用 Go 编写的 esbuild 构建比传统的 JS 快 10 倍。 源码时常变化,且并不是所有源码需要同时被加载。Vite ...
Rollup
[TOC] RollupRollup 是一个 JS 模块打包工具,用 ES6 的格式来打包。 ES 模块带来的优势 是官方标准,是明确的未来发展方向 CommonJS 是一种特殊的兼容格式,是临时解决方案 ES 模块允许静态分析,可以辅助优化(如 Tree-shaking 和作用域提升),并提供高级功能(如循环引用和实时绑定) Tree-shaking ES 模块带来的优势。 即“保留有用代码”。在 Rollup 中使用,用于消除未使用的代码。 该名称源自模块的抽象语法树,和“标记-清除”垃圾收集算法类似。 Rollup 使用命令行对于浏览器,Rollup 可以打包成 ES6 模...
React相关知识点
[TOC] React 18 新特性新的 ReactHooksuseTransition 和 startTransition,即过渡更新模式(Transition Mode)可以将某些状态更新标记为不紧急的。 相比于 setTimeout startTransition 是立刻执行的,setTimeout 是延迟执行的。 startTransition 可被中断的,setTimeout 是阻塞的。 12345678const [isPending, startTransition] = useTransition();const [count, setCount] = useSt...
Vercel
[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...