在不更改URL

时间:2016-09-27 10:04:44

标签: javascript reactjs react-router

我需要在不更改网址的情况下使用的路由

在我自己实现之前,我试图通过反应路由器寻找一些东西。我看到有一个名为 createMemoryHistory 的东西:

  

createMemoryHistory([选项])

     

createMemoryHistory创建一个没有的内存历史记录对象   与浏览器URL交互。这在您需要时很有用   自定义用于服务器端呈现的历史对象   自动化测试,或者当你不想操纵时   浏览器URL,例如当您的应用程序嵌入iframe时。

但是除了这一段之外,没有任何用法示例,我无法在任何地方找到它的用法,即:如何使用Link组件导航而没有路径名,通过哪个参数如果不是路径名等我会路由

这是否适合我的需要,还是我必须自己实施路由器?

2 个答案:

答案 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这样的环境。

https://reacttraining.com/react-router/web/api/MemoryRouter