Skip to content
⚠️ This article was written in 2021. Some content may be outdated.

2022 前端技術展望:React 18、Vue 3 預設與 Vite 時代

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 3 Beta 釋出(基於 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 12React生產穩定,市場佔有率第一
Nuxt 3Vue 3 + ViteRC 階段
SvelteKitSvelteBeta
RemixReact2021 年 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 年寫出更好的程式碼。

MIT Licensed