Skip to content

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