Skip to content
{}

基础知识 - 路由

路由模式

  • HashRouter : 路径带#的模式,不会像后端发起请求

  • BrowserRouter : 路径不带#的模式,会像后端发起请求,如果没有配置相应的页面,页面会报404

import React from "react";
// 路由模块
import {
  HashRouter,
  BrowserRouter,
  Route,
  Switch,
  Redirect,
} from "react-router-dom";
import Home from "./tabber/Home";
import News from "./tabber/news";
import Wode from "./tabber/wode";
import NotFounted from "./tabber/NotFounted";

<!-- BrowserRouter模式 -->
export default function IndexRouter(props) {
  // console.log(props);
  const isToken = () => {
    return localStorage.getItem("token");
  };
  return (
    <div>
      <BrowserRouter> 
        <Switch>
          <Route path="/Home" component={Home}></Route>
            path="/Wode/Wode"
            render={() =>
              isToken() ? <Wode /> : <Redirect from="/" to="/"></Redirect>
            }
          ></Route>
          <Route path="/News" component={News}></Route>
          <Redirect from="/" to="/Home" exact></Redirect>
          <Route path="" component={NotFounted}></Route>
        </Switch>
      </BrowserRouter>
    </div>
  );
}

<!-- HashRouter模式 -->
export default function IndexRouter(props) {
  // console.log(props);
  const isToken = () => {
    return localStorage.getItem("token");
  };
  return (
    <div>
      <HashRouter> 
        <Switch>
          <Route path="/Home" component={Home}></Route>
            path="/Wode/Wode"
            render={() =>
              isToken() ? <Wode /> : <Redirect from="/" to="/"></Redirect>
            }
          ></Route>
          <Route path="/News" component={News}></Route>
          <Redirect from="/" to="/Home" exact></Redirect>
          <Route path="" component={NotFounted}></Route>
        </Switch>
      </HashRouter>
    </div>
  );
}

好好加油吧,少年!