React学习:react-router-dom-主要组件

Posted liyaping

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React学习:react-router-dom-主要组件相关的知识,希望对你有一定的参考价值。

React Router中的组件主要有三类:

  • routers, 路由,例如<BrowserRouter> 、 <HashRouter>
  • route matchers,路由匹配 如 <Route> 、<Switch>

  • navigation,导航,如 <Link>、 <NavLink>、<Redirect>

以上的这些组件都是从react-router-dom中引入。

import { BrowserRouter, Route, Link } from "react-router-dom";

1.Routers

  1.BrowserRouter,使用的是常规的url路径,但是他们需要正确的配置服务器,具体的来说,我们需要自己配置一个路径出来匹配url,跟vue-router差不多。Create React支持这种模式,并附带了如何配置该生产服务器。

  2.HashRouter,将当前位置存储在URL的散列部分中,因此URL类似于http://example.com/#/your/page。由于散列从未发送到服务器,这意味着不需要特殊的服务器配置。

要使用路由器,只需确保它是在元素层次结构的根上呈现的。通常你会把你的顶层元素包装在一个路由器里,就像这样:

import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";

function App() {
  return <h1>Hello React Router</h1>;
}

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById("root")
);

2.Route Matchers

有两个路由匹配组件:Switch 和 Route。当Switch 渲染时,它会搜索其子Route元素,以查找路径与当前URL匹配的元素。当它找到一个,它渲染那个<route>并且忽略所有其他的。这意味着您应该将具有更具体(通常更长的)路径的s放在不太具体的路径之前。

如果没有匹配的Route,则不进行任何渲染

<Switch>
    <Route path="/about">
        <About />
     </Route>
      <Route path="/topics">
         <Topics />
       </Route>
       <Route path="/">
            <Home />
       </Route>
</Switch>        

 

 <Route path="/">

 

注意此处应该是相对路径而不是完整的url。

3.Navigation

React Router提供一个组件来在应用程序中创建链接 Link。类似于html里面的a标签。

NavLink 是一种特殊类型的,它可以在匹配当前位置时将自己设置为“active”。

Redirect类似于初始进来的重定向

<Redirect to="/login" />

他会在渲染的时候 首先进入login页面。

 

 

 

以上是关于React学习:react-router-dom-主要组件的主要内容,如果未能解决你的问题,请参考以下文章

React Redux 和 react-router-dom

react-router-dom V5 使用指南

react-router-dom@5.x官方文档翻译转载

如何使用 react-router-dom 创建动态路由?

React-router-dom 和 Redirect 未添加到历史记录中?

react-router 4.0 学习笔记