深色模式
2021 年是前端生态加速重组的一年:Vue 3 完成生态建设、Angular 12/13 完成 Ivy 迁移、Vite 从新兴工具变成主流选择。站在 2021 年年末,我们来预判 2022 年会发生什么。
React 18:并发渲染正式落地
React 18 在 2021 年 6 月发布 Alpha,正式版预计在 2022 年初发布。最重要的变化是并发渲染——React 可以在渲染过程中被中断,优先处理更紧急的更新:
jsx
// React 18 新特性:useTransition
function SearchPage() {
const [query, setQuery] = useState("");
const [results, setResults] = useState([]);
const [isPending, startTransition] = useTransition();
const handleSearch = (e) => {
const value = e.target.value;
setQuery(value); // 立即更新输入框(高优先级)
startTransition(() => {
// 标记为低优先级,可被中断
setResults(performHeavySearch(value));
});
};
return (
<>
<input value={query} onChange={handleSearch} />
{isPending ? <Spinner /> : <ResultList results={results} />}
</>
);
}其他 React 18 新 API:
useDeferredValue:类似startTransition,但用于值而非函数useId:生成稳定的唯一 ID(SSR 水合安全)Suspense列表排序(SuspenseList)- Streaming SSR(
renderToPipeableStream)
Vue 3 成为默认版本
2022 年 Q1,Vue 3 将成为 npm install vue 安装的默认版本(目前还是 Vue 2)。这意味着:
bash
# 2022 年之后
npm install vue # 安装 Vue 3(目前会安装 Vue 2)
npm install vue@2 # 明确指定 Vue 2Vue 3 生态在 2021 年补完了最后几块拼图:
Pinia成为推荐的状态管理方案(替代 Vuex)Vue Router 4稳定Nuxt 3Beta 发布(基于 Vue 3 + Vite)
Vite 成为首选构建工具
Vite 2 在 2021 年发布后,采用率急剧上升。2022 年预计成为新项目的首选:
javascript
// vite.config.ts
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import react from "@vitejs/plugin-react";
export default defineConfig({
plugins: [vue()], // 或 react()
build: {
rollupOptions: {
output: {
// 自动代码分割
manualChunks: {
vendor: ["vue", "vue-router", "pinia"],
},
},
},
},
});Vite vs Webpack 冷启动对比(中型项目):
Webpack 5(with cache):~6s
Vite:~300ms
原因:Vite 开发模式不打包,直接利用浏览器原生 ESM元框架崛起
2022 年会是元框架(Meta-Framework)爆发的一年:
| 框架 | 基于 | 状态(2022 年初) |
|---|---|---|
| Next.js 12 | React | 生产稳定,市场占有率第一 |
| Nuxt 3 | Vue 3 + Vite | RC 阶段 |
| SvelteKit | Svelte | Beta |
| Remix | React | 2021 年 11 月开源 |
| Astro | 框架无关 | Beta |
Remix 值得特别关注——它重新思考了数据加载方式:
typescript
// Remix 的 loader 函数:在服务端运行,数据直接注入组件
export async function loader({ params }) {
const post = await db.post.findUnique({ where: { id: params.id } });
return json(post);
}
export default function Post() {
const post = useLoaderData(); // 自动是服务端数据
return <article>{post.content}</article>;
}TypeScript 继续深入渗透
TypeScript 2021 年的下载量同比增长了约 60%,2022 年预计:
- Vue 3 官方文档全面 TypeScript 化
satisfies运算符(TS 4.9 草案,更精准的类型检查)- 更多框架把 TypeScript 作为一等公民
总结
2022 年前端的主旋律是:成熟——React 18 并发渲染、Vue 3 生态完善、Vite 成为标配、元框架分化格局。2021 年种下的种子(Vite、SolidJS、Remix)会在 2022 年开始结果。对前端开发者来说,最值得投入的是:深入理解并发渲染、熟悉 Vite 生态、以及认真对待 TypeScript 类型设计。祝 2022 年写出更好的代码。