react:路由

官方文档:https://reactrouter.com/en/main/start/overview#pending-navigation-ui

一:简单版本

先 npm i react-router-dom

main.ts中内容替换为

javascript 复制代码
import ReactDOM from 'react-dom/client'
import App from './App.tsx'
import './index.css'
import {
  createBrowserRouter,
  RouterProvider,
  Route,
  Link,
} from "react-router-dom";

const router = createBrowserRouter([
  {
    path: "/",
    element: (
      <div>
        <h1>Hello World</h1>
        <Link to="about">About Us</Link>
      </div>
    ),
  },
  {
    path: "about",
    element: <div>About</div>,
  },
]);

ReactDOM.createRoot(document.getElementById('root')!).render(
  // <React.StrictMode>
  //   <App />
  // </React.StrictMode>,
  <RouterProvider router={router} />
)

方式二:

// 页面、编程式跳转

main.ts

typescript 复制代码
import ReactDOM from 'react-dom/client'
import App from './App.tsx'
import Page1 from './pages/page1.tsx'
import Page2 from './pages/page2.tsx'
import './index.css'
import {
  createBrowserRouter,
  RouterProvider,
  Route,
  Link,
} from "react-router-dom";

const router = createBrowserRouter([
  {
    path: "/",
    element: <Page1 />,
  },
  {
    path: "about",
    element: <Page2 />,
  },
]);

ReactDOM.createRoot(document.getElementById('root')!).render(
  // <React.StrictMode>
  //   <App />
  // </React.StrictMode>,
  <RouterProvider router={router} />
)

page1.tsx

typescript 复制代码
import { useNavigate } from 'react-router-dom'
 const  page1 = () => {
    const naviagte = useNavigate()
    return <div>
        page1
        <button onClick={() => {
            naviagte('/about')
        }}>去page2</button>
    </div>
}

export default page1

page2.tsx

typescript 复制代码
const  page2 = () => {
    return <div>
        page2
    </div>
}

export default page2
相关推荐
摘星编程3 分钟前
React Native + OpenHarmony:useId唯一标识生成
javascript·react native·react.js
秋秋小事13 分钟前
可选链与非空操作符
前端
iRuriCatt31 分钟前
智慧景区管理系统 | 计算机毕设项目
java·前端·spring boot·vue·毕设
程序员清洒1 小时前
Flutter for OpenHarmony:Icon 与 IconButton — 图标系统集成
前端·学习·flutter·华为
Yolanda942 小时前
【项目经验】钉钉免密登录实现
前端·javascript·钉钉
2601_949613022 小时前
flutter_for_openharmony家庭药箱管理app实战+药品详情实现
java·前端·flutter
摘星编程2 小时前
在OpenHarmony上用React Native:collapsable节点优化策略
javascript·react native·react.js
We་ct2 小时前
LeetCode 15. 三数之和:排序+双指针解法全解析
前端·算法·leetcode·typescript
美狐美颜SDK开放平台2 小时前
直播场景下抖动特效的实现方案:美颜sdk开发经验分享
前端·人工智能·美颜sdk·直播美颜sdk·视频美颜sdk
草青工作室3 小时前
java-FreeMarker3.4自定义异常处理
java·前端·python