90 - 《Bigfish 4 特性 02:React Router 6 和新路由》

发布于 2022年4月1日

4 月会更新 20 篇 Bigfish 4(含 Umi 4)的新特性,这是第二篇。

React Router 6

React Router 是 Bigfish 的重要依赖,Bigfish 基于此实现路由功能,Bigfish 4 从 React Router 5 升级到了 React Router 6。

我个人太喜欢 React Router 6 这个版本了。大家应该都听说过 Remix 框架,和 React Router 出自同一个团队。由于他们自己也要做框架,所以 React Router 6 面向框架也做了很多优化,基于此,Bigfish 删了好多路由渲染和请求策略类的代码,因为这些在 React Router 中已内置处理。

大版本意味着 Break Change,而且还不少。但对于 Bigfish 用户来说,却又不多。因为我们之前使用 React Router 的方式是有节制的,比如没有开放 Route、Routes 和 Switch 的使用。一些值得注意的 Break Change 如下:

1、父路由渲染子路由,之前是 props.children,现在是
2、之前路由组件 props 里能拿到的 location、history、match 等信息,现在可通过 useRouteData() 获取(好处是 props 只能在当前路由组件中获取,而 hooks 的方式在子组件中也能使用,减少了 props 的传递)
Over。

其他会在框架层做兼容。

新路由

除了 React Router 6,我们对内部路由的数据结构也做了调整。

- 文件/配置 ➡ routes ➡ 渲染
+ 文件/配置 ➡ routesById ➡ routes 

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。