React 官方推荐使用 Vite

React 官方文档现在确实明确推荐使用 Vite 作为构建新 React 项目的首选工具之一

这标志着 React 生态系统的一个重要转变。下面我将详细解释为什么会有这个推荐,以及 Vite 相比传统的 Create React App 有什么优势。

为什么 React 官方推荐 Vite?

在 2023 年更新的 React 官方文档中,Vite 和 Create React App 都被列为创建新项目的推荐方式,但 Vite 因其卓越的性能和开发体验而备受青睐。


Vite 的核心优势

1. 极速的服务器启动
  • 传统工具(如 CRA/Webpack): 在启动开发服务器时,需要先打包整个项目的所有模块,然后才能提供服务。项目越大,启动越慢。
  • Vite: 利用了浏览器对 ES 模块的原生支持。它根本不需要在启动时打包你的代码,而是按需编译和提供源代码。这使其服务器启动速度极快,无论项目规模多大,通常都能在毫秒级完成。
2. 高效的热模块更新
  • 传统工具: 当文件发生变化时,Webpack 需要重新构建变动的模块及其依赖图的一部分,然后通知浏览器更新。这在大项目中会有明显的延迟。
  • Vite: HMR 是在原生 ES 模块之上执行的。当一个模块被修改时,Vite 只需要让浏览器重新请求该单个模块即可。这使得热更新几乎瞬间完成,大大提升了开发效率。
3. 优化的构建
  • Vite 在生产环境构建时使用 Rollup(一个以输出高效、轻量打包文件而闻名的工具)。
  • Rollup 能生成树摇优化非常好的代码,并且 Vite 提供了开箱即用的代码分割、资源处理等配置,确保最终的生产版本尽可能小和高效。
4. 丰富的功能与灵活性
  • 开箱即用: 对 TypeScript、JSX、CSS 和各类 CSS 预处理器(如 Less, Sass)提供了原生支持,无需额外配置。
  • 易于配置: 它的配置文件 vite.config.js 非常简洁明了。相比于 Webpack 复杂的配置,Vite 的配置学习曲线更平缓。
  • 插件生态系统: 拥有一个兼容 Rollup 插件格式的、不断增长的插件生态系统,可以轻松扩展功能。

Vite vs. Create React App

特性 Vite Create React App
开发服务器启动 极快(利用 ES 模块) 慢(需要预先打包)
热更新 极快(基于 ES 模块的 HMR) 较慢
配置复杂度 灵活且简单 抽象度高,需要 eject 才能自定义配置
构建工具 开发:ESBuild,生产:Rollup Webpack(开发和生产)
对现代工具的支持 一流(原生支持 ES 模块等) 良好,但架构较传统

关键点: CRA 的主要目标是零配置 ,让初学者能快速上手。但随着生态的发展,它的缓慢启动和"黑盒"配置(需要通过 eject 来获取,但这是一条不可逆的单行道)成为了瓶颈。Vite 在提供近乎零配置体验的同时,还带来了极致的速度和配置灵活性。


如何使用 Vite 创建 React 项目?

使用 Vite 创建新项目非常简单。官方推荐使用以下命令:

bash 复制代码
# 使用 npm
npm create vite@latest my-react-app -- --template react

# 使用 yarn
yarn create vite my-react-app --template react

# 使用 pnpm
pnpm create vite my-react-app --template react

然后进入项目目录,安装依赖并启动:

bash 复制代码
cd my-react-app
npm install
npm run dev

你几乎会立刻看到开发服务器运行起来。

总结

React 官方推荐 Vite 是一个顺理成章的决定,因为它代表了前端工具链的未来方向:更快的速度、更好的开发体验和更现代的架构。

  • 对于新项目 ,除非有特殊原因必须使用 CRA,否则强烈建议从 Vite 开始
  • 对于现有的 CRA 项目,如果开发速度让你感到痛苦,可以考虑迁移到 Vite。Vite 官方提供了迁移指南,过程通常比较顺利。

总而言之,拥抱 Vite 就是拥抱一个更快、更愉快的 React 开发体验。

相关推荐
im_AMBER3 分钟前
React 11 登录页项目框架搭建
前端·学习·react.js·前端框架
Live&&learn5 分钟前
nvm切换node版本时,npm不跟着切换解决
前端·npm·node.js
xixixin_9 分钟前
【React】检测元素是否出现在用户视窗内
开发语言·前端·javascript·react.js
谢彦超oooo1 小时前
HTML5 与前端开发要点
前端·html·html5
IT_陈寒1 小时前
Vue 3响应式原理深度拆解:5个90%开发者不知道的Ref与Reactive底层实现差异
前端·人工智能·后端
睡前要喝豆奶粉2 小时前
在.NET Core Web Api中使用JWT并配置UserContext获取用户信息
前端·.netcore
前端加油站2 小时前
一份实用的Vue3技术栈代码评审指南
前端·vue.js
Jonathan Star8 小时前
沉浸式雨天海岸:用A-Frame打造WebXR互动场景
前端·javascript
工业甲酰苯胺9 小时前
实现 json path 来评估函数式解析器的损耗
java·前端·json
老前端的功夫9 小时前
Web应用的永生之术:PWA落地与实践深度指南
java·开发语言·前端·javascript·css·node.js