react-router之默认路由与多组路由

默认路由

  • <Route>标签上有一个属性为index,他就是用来控制默认展示的子路由的
import {
    Routes,
    Route,
    useNavigate,
    NavLink,
    Navigate,
    Outlet,
  } from "react-router-dom";
  
  
  export default function App() {
    return (
      <div className="App">
        <h1>Welcome to React Router!</h1>
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="about" element={<About />}>
            {/* 定义嵌套路由 */}
            <Route path="child" element={<AboutChild1/>}></Route>
            <Route index element={<AboutChild2/>}></Route>
          </Route>
          <Route path="*" element={<Navigate to="/" />} />
        </Routes>
      </div>
    );
  }
  
  function AboutChild1() {
    return (
      <>
        <h2>Hello AboutChild1</h2>
      </>
    );
  }
  
  function AboutChild2() {
    return (
      <>
        <h2>Hello AboutChild2</h2>
      </>
    );
  }
  
  function Home() {
    return (
      <>
        <main>
          <h2>Welcome to the homepage!</h2>
          <p>You can do this, I believe in you.</p>
        </main>
        <nav>
          <NavLink to="/about"> About</NavLink>
        </nav>
      </>
    );
  }
  
  function About() {
    const navigate = useNavigate();
    const handelClickToHome = () => {
      navigate("/");
    };
  
    const handelClickToChild = () => {
      navigate("/about/child");
    };
    return (
      <>
        <main>
          <h2>Who are we?</h2>
          <p>That feels like an existential question, don't you think?</p>
        </main>
        <button onClick={handelClickToChild}>嵌套路由</button>
        {/* 定义子路由的显示位置 */}
        <Outlet/>
          <button onClick={handelClickToHome}>Home</button>
      </>
    );
  }
  

在这里插入图片描述

我们会发现到跳转到路由的时候,会显示我们定义index的路由

多组路由

一般的话我们使用一个路由就足够了,但是需求是多方面的,我们也可以定义多组路由

<Router>
    <SideBar>
        <Routes>
            <Route></Route>
        </Routes>
    </SideBar>
    <Main>
        <Routes>
            <Route></Route>
        </Routes>
    </Main>
</Router>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值