react项目路由的统一配置

react项目路由的统一配置

1、首先定义一个routes.jsx文件夹

import React from "react";
/*
 BrowserRouter相当于路由模式中的history模式,可以让url不带#
 HashRouter相当于路由模式中的hash模式,url携带#
 所有Route组件都必须包含在Routes组件中
*/
import { Route, BrowserRouter, Routes } from "react-router-dom";
import Login from "../pages/login";
import Register from "../pages/register";
import App from "../App.jsx";
import List from "../pages/list";
import Material from "../pages/material";
import Edit from "../pages/edit";
import NoMatch from "../pages/404";

/*将所有页面统一进行配置 */
const baseRouter = () => (
	<BrowserRouter>
		<Routes>
			<Route path="/" element={<App />}>
                /*
                  1、在子路由中可以不用携带/
                  2、当将list路径设置为默认路径的时候,需要将其path属性删除,增加index属性
                <Route index element={<List />}></Route>
                */
				<Route path="/list" element={<List />}></Route>
				<Route path="/edit" element={<Edit />}></Route>
				<Route path="/material" element={<Material />}></Route>
			</Route>
			<Route path="/login" element={<Login />}></Route>
			<Route path="/login/:id" element={<Login />}></Route>
            
            //这一行路由规则代表:匹配携带参数或者不携带参数都可以
            <Route path="/login/*" element={<Login />}></Route>
			<Route path="/register" element={<Register />}></Route>
            //当没有路径进行匹配的时候,到达404页面
            <Route path="*" element={<NoMatch />}></Route>
		</Routes>
	</BrowserRouter>
);

export default baseRouter;

2、在入口文件index.js中将其引入

import React from "react";
import ReactDOM from "react-dom";
import ConfigRoutes from "./routes/index.jsx";
import "antd/dist/antd.css"; //引入css样式

ReactDOM.render(<ConfigRoutes />, document.getElementById("root"));

3、App.jsx作为二级路由出口页面需要使用Outlet进行页面渲染配置

import React from "react";
import { Outlet} from 'react-router-dom';
const App = () => {
    /*
      Outlet组件相当于vue中router-view以及v5之前的this.props.children
    */
	return (
		<div>
		  首页
			<Outlet></Outlet>
		</div>
	)
}
export default App;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值