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 2
Vue 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 年寫出更好的代碼。