【React】react路由配置 useRoutes

App.tsx文件

import { useRoutes } from 'react-router-dom'
import router from './router';
function App(){
const outlet = useRoutes(router )
 return (
    <div className="App node" >
      {outlet}
    </div>
  );
}
export default App

router.tsx文件

import React, { lazy } from 'react'
import { Navigate } from 'react-router-dom';
import Home from "../views/Home";
const A= lazy(() => import('../views/A'));
const B = lazy(() => import('../views/B'));
const C= lazy(() => import('../views/C'));
const D= lazy(() => import('../views/D'));
const E= lazy(() => import('../views/E'));
const F= lazy(() => import('../views/F'));
//懒加载的模式需要我们添加一个Loading组件
const LoadingCom= (comp: JSX.Element) => (
    <React.Suspense fallback={<div>Loading...</div>}>
        {comp}
    </React.Suspense>
)
const router = [
    {
        path: '/',
        element: <Navigate to='/a' />
    },
    {
        path: '/',
        element: <Home />,
        children: [
            {
                path: '/a',
                element: LoadingCom(<A/>)
            },
            {
                path: '/a/b',
                element: LoadingCom(<B/>)
            },
            {
                path: '/a/c',
                element: LoadingCom(<C/>)
            },
            {
                path: '/a/d',
                element: LoadingCom(<D/>)
            },
            {
                path: '/a/e',
                element: LoadingCom(<E/>)
            },
            {
                path: '/a/f',
                element: LoadingCom(<F/>)
            },
        ]
    },
    //但跳转到没有的路径时,重定向到首页
    {
        path: '*',
        element: <Navigate to='/a' />
    }
]
export default router

Home.tsx文件

import { Outlet } from "react-router-dom";
const View =()=>{
return (
 <>
   <div style={{ height: "50px" }}>
       头部
   </div>
   <div style={{ height: "50px" }}>
       左侧
   </div>
   <div style={{ height: "50px" }}>
            {/* 窗口部分 */}
              <Outlet />
              <div style={{ height: "50px" }}>
                底部
             </div>
   </div>
 </>
 )
}
export default (View);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值