react嵌套路由

react嵌套页面

先从路由身上导出

import { HashRouter, Routes, Route, Navigate } from 'react-router-dom';
//引入页面;
import Home from './view/Home'; 
import About from './view/About';
import Integrated from './view/Integrated';
import Sidebar from './view/Sidebar';
import Latent from './view/Latent';
import Particulars from './view/Particulars';
import SecurityCheck from './view/SecurityCheck';

react 配置路由你可以在App.js中设置,也可以在index.js中配置,整体灵活度较高;
如果不上传服务器的话可以使用BrowserRouter包裹路由,地址栏就不会有井号出现

function App() {
//将需要的嵌套页面写在route标签内
  return (
  <HashRouter>
      <Routes>
        <Route path='/' element={<Login />} ></Route>
        <Route path='/home' element={<Home />} ></Route>
        <Route path='/about' element={<About />} >
        {/* 如果需要默认显示页面将不需要填写路径 ,子路由不需要写/斜杠跳转时会带有*/}
          <Route path='' element={<Integrated />} ></Route>
          <Route path='sidebar' element={<Sidebar />} >
            <Route path='' element={<Latent />} ></Route>
            <Route path='particulars' element={<Particulars />} ></Route>
            <Route path='securityCheck' element={<SecurityCheck />} ></Route>
          </Route>
        </Route>
      </Routes>
    </HashRouter>
    );
}

export default App;

在父页面内引入路由出口

import React, { useState, useEffect } from 'react';
import styles from './About.module.css'
import { Outlet, useNavigate } from 'react-router-dom';

export default function About() {
    const navigate = useNavigate();
    return (
        <>
	        <div>About</div>
	        {/* 可通过编程式路由进行子页面的切换显示(切换子页面不需要加斜杠) */}
	        <div onClick={()=>{
                navigate('particulars', {
                    replace: true
                });
            }}></div>
	        <Outlet />
        </>
    )
}

在子页面内写入内容

import React, { useEffect, useState } from 'react';
import styles from './Latent.module.css';

export default function Latent() {
    return (
		<>
			<div>
				Latent
			</div>
		</>
	)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值