前言
Next.js 是一个基于 React 的服务端渲染工具,已经成为了 React 服务端渲染的事实标准。对于一个现代化的应用程序,页面路由是必不可少的功能。React 路由解决方案中,React Router 是最常用的库之一。而在 Next.js 中,我们可以使用 next/router 包来解决路由问题。
但是,next/router 有其自身的缺点,比如支持服务端渲染,但是在客户端执行的时候会有一定的延迟,导致客户端执行后可能会出现页面跳转时的闪烁现象。
Next.js 团队为了解决这个问题,推出了一个新的 npm 包,叫做 next-react-router。下面,我们将详细介绍这个包的使用方法及注意事项。
安装
在项目中,使用 npm 包管理器安装 next-react-router 包:
npm install next-react-router
或者使用 yarn:
yarn add next-react-router
使用方法
在项目入口处设置 next-react-router:
-- -------------------- ---- ------- -- ------------- ------ - --------- - ---- ------- ------ - --------- - ---- ------------- ------ - ------------ - ---- ------------------- -- ------ ------ ------ ---- ---------------------- -- ----------------- -- ----- ------ - -------------- -- ---- ---------- --- -------- - ----------- --- ---- --------- -------- ------ --- -- ------------ ------------- -- -- - ------------------ -- -- -- ---------- --------- -- -- -- -- -------- ------- ---------- --------- -- - ----- ------ - ----------- ------------ -- - -------------------- -- --- ------ - -------- ---------- -------------- -- --------- - - ------ ------- ------------- -- -- -----------------
在上面的代码中,我们通过调用 createRouter 函数来创建一个名为 router 的对象,该对象具有配置路由的功能。在 App 组件中,我们用该对象对 MyApp 组件进行包装,以使用其路由功能。
路由的使用
在路由使用时,请使用 next-react-router 中的 Link 组件:
-- -------------------- ---- ------- ------ ---- ---- ------------------------ ------ ------- -------- ------ - ------ - ----- ----------- -- -- --------- ----- ------------------ ------------ ------ - -
命令行参数
在命令行上,需要添加 -r/--run-router 来实现 next-react-router 的默认路由。这样,我们可以使用以下命令来启动应用程序:
npm run dev -- -r
或者使用 yarn:
yarn dev -- -r
注意事项
- 使用 next-react-router 时,不需要再次为路由添加 <router> 组件。next-react-router 会自动添加并管理路由。因此,如果在渲染过程中手动添加 <router> 组件,则可能会出现与 next-react-router 冲突的错误。因此,必须将 <router> 组件从代码中删除。
-- -------------------- ---- ------- -- --- ------ - ------ - ---- ------------- -- --- ------ - ------------ - ---- ------------------- -- ------- -------- -- -- -------- -------- ------- ---------- --------- -- - --- - ------ ------- -------------------
- next-react-router 对于动态路由有一些不同的处理方法:
-- -------------------- ---- ------- -- --------------------- ------ - --------- - ---- ------------- ----- ---- - -- -- - ----- ------ - ----------- ----- - ---- - - ------------ ------ - ----- ---- -- --- ------ ----- ------ - - ------ ------- ----
除了这些特殊情况之外,next-react-router 的使用方式与普通的 React Router 使用方式完全相同。
结论
next-react-router 是 Next.js 团队为了解决客户端路由延迟问题,新推出的一个 npm 包。与 next/router 相比,它具有更快的客户端执行速度和更稳定的服务端执行速度,并且支持自定义配置。 使用 next-react-router 意味着不需要手动维护路由,同时保持了服务端渲染的优势。希望本篇文章能够帮助大家更好的使用 next-react-router 。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005662e81e8991b448e20e2