虽然 Remix 作为多页应用程序工作,但当 JavaScript 加载时,它会使用客户端路由来提供完整的单页应用程序用户体验,并具有随之而来的所有速度和网络效率优势。
Remix 基于 React Router 并由同一个团队维护。这意味着你可以在你的 Remix 应用程序中使用 React Router 的所有功能。
这也意味着 Remix 的 90% 实际上只是 React Router:一个非常古老、非常稳定的库,也许是 React 生态系统中最大的依赖项。Remix 只是在它后面添加了一个服务器。
Remix 重新导出了 React Router DOM 中的所有组件和 Hook,因此你无需自己安装 React Router。
🚫 不要这样做
import { useLocation } from "react-router-dom";
✅ 做这个
import { useLocation } from "@remix-run/react";
一些组件和 Hook 已经扩展以与 Remix 的服务器渲染和数据获取功能配合使用。例如,Link
可以预取 Remix 中的数据和资源,而 React Router 版本则不能。
🚫 不要这样做
import { Link } from "react-router-dom";
// this won't do anything
<Link prefetch="intent" />;
✅ 做这个
import { Link } from "@remix-run/react";
// this will prefetch data and assets
<Link prefetch="intent" />;