Skip to content
{}

基础知识 - 路由

路由嵌套 = 子级路由

两个路由在一起并级上下排列 叫 同级路由 ,在路由组件内部 在写路由 叫嵌套路由(子级路由)

<!-- 嵌套路由组件(子级路由) Home.jsx -->
import React from "react";
import { Route, Switch, Redirect } from "react-router-dom";
import list1 from "./Home/list1"; 
import list2 from "./Home/list2";
import NotFounted from "./NotFounted";
export default function Home() {
  return (
    <div>
      首页
      {/* 当前页面嵌套了两个路由 或在Home组件下嵌套显示 */}
      <Switch>
        <Route path="/Home/list1" component={list1}></Route>
        <Route path="/Home/list2" component={list2}></Route>
     

        {/* 如果从匹配到从/Home页面过来,就重定向到list2组件 */}
        <Redirect from="/Home" to="/Home/list1" exact></Redirect>

        {/* 如果没有匹配的路由 显示404组件 */}
        <Route component={NotFounted}></Route>
      </Switch>
    </div>
  );
}

<!-- 路由组件 IndexRouter.jsx -->
import React from "react";
// 路由模块
import { HashRouter, 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";
export default function IndexRouter() {
  return (
    <div>
      {/* Hash模式 */}
      <HashRouter>
        {/* 被Switch组件包裹之后,React会自动帮我们检测重定向地址 */}
        <Switch>
          {/* 路由表 */}
          <Route path="/Home" component={Home}></Route>
          <Route path="/News" component={News}></Route>
          <Route path="/Wode/Wode" component={Wode}></Route>
             
          {/* 当没有匹配的路由时 */}
          <Route path="*" component={NotFounted}></Route>
          <!-- 搜索/ 重定向到Home组件 -->
          <Redirect from="/" to="/Home" exact></Redirect>
        </Switch>
      </HashRouter>
    </div>
  );
}

<!-- 根组件App.jsx -->
import React from "react";
import ReactDom from 'react-dom';
// 导入自己封装的路由组件
import IndexRouter from "./view/一级路由与多级路由/IndexRouter";
export default function App() {
  return (
    <div>
      <IndexRouter></IndexRouter>
    </div>
  );
}

ReactDom.render(<App/>,document.getElementById('root'))

好好加油吧,少年!