Remix 1.9 发布,全栈框架
Remix 是一个由 React Router 开发团队所开发的基于 React 和 Node 的全栈框架,以解决开发者在用 React 开发时面临的一些棘手问题。
Remix 1.9 发布,更新内容如下:
支持 React Router 的可选路由段
我们在 React Router 6.5.0 的最新次要版本中支持可选路由段,现在 Remix 也支持它们。为此,我们为文件系统路由引入了一个新的约定。
由括号包围的路由文件名将被转换为 React Router 的可选段。例如, /($lang)/about
将被转换为 /:lang?/about
。
这意味着 /($lang)/about
将匹配:
/en/about
/fr/about
/about <-- $lang is optional!
增加对新 TypeScript 语法的支持
Remix 编译器现在支持新的 TypeScript 4.9 语法。在最新的 TypeScript 版本中,有几个很酷的功能。
我们最喜欢的功能之一是 satisfies
关键字,它可以让你验证一个表达式是否符合给定的类型 —— 而不改变该表达式的结果类型。
// this example comes from the TypeScript 4.9 release notes
type Colors = "red" | "green" | "blue";
type RGB = [red: number, green: number, blue: number];
const palette = {
red: [255, 0, 0],
green: "#00ff00",
bleu: [0, 0, 255]
// ~~~~ The typo is now caught!
} satisfies Record<Colors, string | RGB>;
// Both of these methods are still accessible!
const redComponent = palette.red.at(0);
const greenNormalized = palette.green.toUpperCase();
路由性能提升
有时候,你可以从微小的变化中获得巨大的收益。我们对 defineConventionalRoutes
中的查找算法进行了调整。
在一个较大的、现实的项目(约 700 条路由)的生产构建的本地运行中:
- 以前:10-15 秒
- 现在:1 秒,10 倍的速度提升
错误修复:Firefox 和 <LiveReload>
修复了 Firefox 中 <LiveReload>
的一个问题,该问题导致页面在更改后无限地重新加载。
更多详情可查看:https://github.com/remix-run/remix/releases/tag/remix%401.9.0
漫思