虽然 Remix 可以作为多页面应用程序工作,但当 JavaScript 加载时,它会使用客户端路由来实现完整的单页面应用程序用户体验,并具有随之而来的所有速度和网络效率。
Remix 构建于 React Router 之上,并由同一团队维护。这意味着您可以在 Remix 应用程序中使用 React Router 的所有功能。
这也意味着 90% 的 Remix 实际上只是 React Router:一个非常老旧、非常稳定的库,可能是 React 生态系统中最大的依赖项。Remix 只是在它后面添加了一个服务器。
Remix 重新导出了 React Router DOM 中的所有组件和钩子,因此您无需自己安装 React Router。
🚫 不要这样做
import { useLocation } from "react-router-dom";
✅ 这样做
import { useLocation } from "@remix-run/react";
一些组件和钩子已经扩展到可以与 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" />;