我需要在不更改网址的情况下使用的路由。
在我自己实现之前,我试图通过反应路由器寻找一些东西。我看到有一个名为 createMemoryHistory
的东西:
createMemoryHistory([选项])
createMemoryHistory创建一个没有的内存历史记录对象 与浏览器URL交互。这在您需要时很有用 自定义用于服务器端呈现的历史对象 自动化测试,或者当你不想操纵时 浏览器URL,例如当您的应用程序嵌入iframe时。
但是除了这一段之外,没有任何用法示例,我无法在任何地方找到它的用法,即:如何使用Link
组件导航而没有路径名,通过哪个参数如果不是路径名等我会路由
这是否适合我的需要,还是我必须自己实施路由器?
答案 0 :(得分:12)
MemoryHistory是一个“历史提供者”,您可以像这样提供给React Router:
const memoryHistory = createMemoryHistory(options);
// In your Router configuration
<Router history={memoryHistory} routes={routes} />
除了初始配置之外,其他所有内容都应与常规浏览器历史记录完全相同。
本文介绍如何在React Router中使用不同的提供程序:Histories
答案 1 :(得分:4)
React Router 4有一个MemoryRouter
import { MemoryRouter } from 'react-router'
<MemoryRouter>
<App/>
</MemoryRouter>
<Router>
将“网址”的历史记录保存在内存中(不是 读或写地址栏)。在测试和非浏览器中很有用 像React Native这样的环境。