码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-15 21:07:45      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:get   路径   url   round   查找   重定向   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-主要组件

标签:get   路径   url   round   查找   重定向   dom   初始   元素   

原文地址:https://www.cnblogs.com/liyaping/p/11680019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!