前端社区又吵起来了,React团队终于妥协!

开发 前端
React 团队弃用 Create React App 后,TanStack 迅速推出 create-tsrouter-app 脚手架,集成 Vite、React Query、TanStack Router等现代化技术,为 SPA 开发提供最佳实践。

React 团队近日正式宣布弃用 Create React App(CRA),为填补 CRA 的空白,TanStack(以 React Query 闻名的前端工具集)迅速推出全新脚手架 create-tsrouter-app。本文就来看看 create-tsrouter-app 的亮点以及 React 弃用 Create React App 之后带来的一些争议和改变。

本文省流版: 

React 团队弃用 Create React App 后,TanStack 迅速推出 create-tsrouter-app 脚手架,集成 Vite、React Query、TanStack Router等现代化技术,为 SPA 开发提供最佳实践。

React 官方对框架的执着推荐引发了社区争议,社区呼吁提供更多轻量级工具选择(如 Vite)。Redux 核心维护者对文档提出了PR,建议平衡使用框架与常用工具,目前 React 团队已采纳大部分建议,并更新了官方文档。

create-tsrouter-app

create-tsrouter-app 以 Vite 为核心,提供了 CRA 的所有功能,整合了包括 React Query、TanStack Router 在内的多项现代化技术,为 SPA 开发提供开箱即用的最佳实践方案。

图片图片

可以使用以下命令来创建基于 TypeScript 的 SPA 应用:

npx create-tsrouter-app@latest my-app --template typescript

目前,该脚手架通过了多个参数:

  • 如果想要 Tailwind,只需添加--tailwind
  • 如果想要选择包管理器(npm``bun``yarn``pnpm),只需添加--package-manager
  • 如果需要基于文件的路由,只需添加 --template file-router

TanStack

TanStack 作为一个使用广泛的高质量前端工具集,提供了包括状态管理、路由、数据可视化在内的多种库和工具,其中 React Query 尤为知名。

图片图片

作为此脚手架的核心,TanStack Router 凭借以下特性成为 React Router 的理想替代品:

  • 极致的类型安全

自动推断路由参数、查询参数与导航状态,实现端到端的 TypeScript 支持。

编译时校验路径匹配,彻底消除路径拼写错误和参数类型不匹配问题。

  • 数据驱动式路由设计
  • 内置 SWR 缓存策略的路由加载器,支持预加载与数据缓存。
  • 深度兼容 React Query/SWR,天然适配客户端数据缓存场景。
  • 企业级路由架构
  • 文件系统路由生成:通过目录结构自动映射路由,简化维护成本(类似 Next.js)。
  • 嵌套布局与异步路由:支持动态加载组件与错误边界,优化首屏性能。
  • 中间件扩展:可在路由匹配、加载阶段插入权限校验、日志等逻辑。
  • 高级状态管理
  • 类型安全的查询参数 API:支持复杂对象序列化与验证(如日期、枚举)。
  • 基于 JSON 的查询参数管理:替代 URLSearchParams,避免手动编解码。

横向对比:TanStack Router vs React Router vs Next.js:

图片图片

图片图片

图片图片

可以看到,TanStack Router 在很多方面都远远优于 React Router,不管你用不用 create-tsrouter-app 来创建新项目,TanStack Router 都值的尝试,以替代有点 out 的 React Router。

图片图片

React 框架争议

React 官方一直鼓励使用 React 框架来创建新项目,但在实际开发中,对于许多单页应用(SPA)来说,使用 Vite 等轻量级工具可能更为合适。

对于 React 官方对框架的执着推荐,社区也出现很多不满的声音:

  • 尤雨溪表示,官方的推荐很糟糕:
  1. 建议当前的 CRA用户直接迁移到框架是一个糟糕的建议。这会使他们面临比当前设置更加复杂的局面,并大大增加迁移的成本和风险。
  2. 也不能用“他们应该使用框架,因为框架包含路由和数据获取功能”来为这一建议辩解,因为如果他们需要这些功能,很可能已经在使用CRA的基础上,通过自己选择的解决方案实现了这些功能。与其将这些功能迁移到可能以完全不同方式处理这些问题的框架中,最明显且最直接的方法是,用类似但更现代、性能更好的工具来替换CRA。

图片图片

  • Munawwar Firoz 表示,谁会推荐这些(截图)作为迁移路径呢?这可比仅仅替换构建相关的部分(比如使用最受欢迎的 Vite,或者是rsbuild、parcel 等)要困难得多。

图片图片

对此,Redux 的核心维护者 Mark Erikson 总结了社区上的意见,并重写了官方文档中 创建一个 React 应用 部分,已经向 React 仓库提了 PR:https://github.com/reactjs/react.dev/pull/7618。

图片图片

在新文档中,不仅对推荐 React 框架部分进行了更详细的解释,还新增了从头开始 部分,推荐使用 Vite、Rsbuild、Parcel 来作为构建工具,使用 React Router、TanStack Router 作为路由工具,使用 React Query、SWR、RTK Query 作为数据获取工具。

图片图片

这才是一个更好的平衡:

  • 仍然建议将框架作为默认设置,并解释具体原因。
  • 为学习者或想要更简单设置的开发者提供指导,并推荐常用工具 。

目前,React 团队已经采用了这个 PR 的大部分建议,并在文档中新增了一页“从头开始构建React应用”。

图片图片

责任编辑:武晓燕 来源: 前端充电宝
相关推荐

2021-05-27 05:35:45

Go传值传引用

2020-04-26 11:30:55

哈希表编程语言开发

2024-05-09 08:35:24

哈希表数组存储

2024-10-22 13:28:53

2024-01-09 07:26:16

ReactVue前端

2023-10-31 07:40:15

EslintJSHint

2024-07-08 00:00:07

2023-10-30 17:14:59

AI模型

2024-04-30 15:06:03

智能体模型工具

2022-06-08 19:10:27

MarcusLeCun算法

2017-09-13 18:39:40

iphone解锁雷军

2021-10-22 15:45:32

开发技能React

2023-11-26 17:14:05

2024-05-28 12:36:58

AIOpenAI工程师

2024-04-28 09:01:06

React 19更新前端

2020-03-20 22:04:17

AndroidiOS谷歌

2021-08-16 16:15:04

云计算亚马逊微软

2016-01-05 11:26:54

2020-07-14 16:25:37

苹果iPhone售后

2015-05-28 10:35:07

前端gulpdemo
点赞
收藏

51CTO技术栈公众号