react路由配置

准备工作

需要安装依赖 npm i react-router-dom
然后创建在我们app.js中配置路由,具体做法如下:

import './App.css';
import { BrowserRouter as Router, Routes, Route} from "react-router-dom";
import Home from "./views/home/index";
import Target from "./views/target/index";
import My from "./views/my/index";
import Demo from "./views/demo/index";


function App() {
  return (
  <div>
    <Router>
      <Routes>
        <Route path="/home" element={<Home/>}/>
        <Route path="/target" element={<Target/>}/>
        <Route path="/my" element={<My/>}/>
        <Route path="/demo" element={<Demo/>}/>
      </Routes>
    </Router>
  </div>
  );
}

export default App;

路由重定向(可以封装)

//React.jsx
import { useEffect } from "react";
import { useNavigate } from "react-router-dom";

export default function Redirect({ to }) {
  let navigate = useNavigate();
  useEffect(() => {
    navigate(to);
  });
  return null;
} 
// app.js
import './App.css';
import { BrowserRouter as Router, Routes, Route} from "react-router-dom";
import Home from "./views/home/index";
import Target from "./views/target/index";
import My from "./views/my/index";
import Demo from "./views/demo/index";
import Redirect from "./component/Redirect";


function App() {
  return (
  <div>
    <Router>
      <Routes>
        <Route path="/home" element={<Home/>}/>
        <Route path="/target" element={<Target/>}/>
        <Route path="/my" element={<My/>}/>
        <Route path="/demo" element={<Demo/>}/>
        <Route path="/" element={<Redirect to="/home" />} />
      </Routes>
    </Router>
  </div>
  );
}

export default App;

页面跳转(通过Link来进行跳转)详细代码如下

import React from 'react';
import { Link } from 'react-router-dom';
import "./Footer.css";

function Footer() {
    return ( 
        <footer className="w100 flex jc-sa aic footer bg-fff">
            <Link to="/home">首页</Link>
            <Link to="/target">购物车</Link>
            <Link to="/my">我的</Link>
            <Link to="/demo">demo</Link>
        </footer>
     );
}

export default Footer;

配置子路由

首先创建子组件
然后在app.js中将但标签变为双标签,然后把子组件添加进去
代码如下:

import './App.css';
import { BrowserRouter as Router, Routes, Route} from "react-router-dom";
import Home from "./views/home/index";
import Target from "./views/target/index";
import List from "./views/target/list"
import Deatail from "./views/target/detail"
import My from "./views/my/index";
import Demo from "./views/demo/index";
import Redirect from "./component/Redirect";


function App() {
  return (
  <div>
    <Router>
      <Routes>
        <Route path="/home" element={<Home/>}/>
        {/* 配置子路由 */}
        <Route path="/target" element={<Target/>}>
          <Route path="list" element={<List/>}/>
          <Route path="detail" element={<Deatail/>}/>
        </Route>
        <Route path="/my" element={<My/>}/>
        <Route path="/demo" element={<Demo/>}/>
        <Route path="/" element={<Redirect to="/home" />} />
      </Routes>
    </Router>
  </div>
  );
}

export default App;

然后配置路由出口

import React from 'react';
import { Outlet } from 'react-router';
import Footer from "../../component/Footer";

function Target() {
  return (
    <div>
      target
      <hr/>
      <Outlet/>
      <Footer/>
    </div>
  );
}

export default Target;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值