欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > React18 +ts 路由写法

React18 +ts 路由写法

2025/9/19 14:36:01 来源:https://blog.csdn.net/CSSAJBQ_/article/details/130131774  浏览:    关键词:React18 +ts 路由写法

命令:npm i react-router-dom
版本声明:

在这里插入图片描述
写法一:
src>router>index.tsx

import App from "../App";
import React, { lazy } from "react";
import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom";
const Home = lazy(() => import("../views/Home"));// 抽取懒加载组件
const withReactSuspense = (comp: JSX.Element) => (// lazy路由懒加载 需要搭配 Suspense 组件进行优化<React.Suspense fallback={<div>Loading...</div>}>{comp}</React.Suspense>
);function baseRouter() {return (<BrowserRouter><Routes><Route path="/" element={<App />}>{/* Navigate 重定向 */}<Route path="/" element={<Navigate to="/home" />}></Route><Routepath="/home"element={withReactSuspense(<Home />)}></Route></Route></Routes></BrowserRouter>);
}export default baseRouter;

main.tsx

import React from "react";
import ReactDOM from "react-dom/client";
import Router from "./router";ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(<React.StrictMode><Router /></React.StrictMode>
);

App.tsx

import { Outlet } from "react-router-dom";function App() {return (<div className="App">{/* Outlet 占位符组件,类似于vue的router-view */}<Outlet /></div>);
}export default App;

第二种写法:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词