反应路由器而不更改URL

Omr*_*ron 14 javascript reactjs react-router

我需要在不更改URL的情况下使用路由.

在我自己实现之前,我试图通过反应路由器寻找一些东西.我看到有这样的事情叫做createMemoryHistory:

createMemoryHistory([选项])

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

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

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

mdz*_*kon 13

MemoryHistory是一个"历史提供者",你可以像这样提供给React Router:

const memoryHistory = createMemoryHistory(options);

// In your Router configuration
<Router history={memoryHistory} routes={routes} />
Run Code Online (Sandbox Code Playgroud)

除了初始配置之外,其他所有内容都应与常规浏览器历史记录完全相同.

本文介绍如何使用React Router:Histories使用不同的提供程序


Ala*_*eay 6

React Router 4有一个MemoryRouter

import { MemoryRouter } from 'react-router'

<MemoryRouter>
  <App/>
</MemoryRouter>
Run Code Online (Sandbox Code Playgroud)

一个<Router>在内存让你的“URL”的历史记录(不读或写到地址栏)。在测试和非浏览器环境(如React Native)中很有用。

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

  • 注意:如果您使用 MemoryRouter,您将无法获得后退按钮功能 (3认同)