当前位置: 首页 > news >正文

React-router v7 第一章(安装)

React-Router V7

在这里插入图片描述

React-router 是 React的路由库,如果你学过Vue,跟Vue的Router很相似。它的作用就是,根据不同的URL,匹配不同的组件,然后进行渲染。这样就可以实现在单页面应用中跳转页面。

官方文档:https://reactrouter.com/home

安装

react-router在最新版本V7中,设计了三种模式

  • 框架模式

框架模式就是使用,React-router 提供的脚手架模板去安装,安装完成后会自带路由功能。

npx create-react-router@latest my-react-router-app # 创建项目
cd my-react-router-app # 进入项目
npm i # 安装依赖
npm run dev # 启动项目
  • 数据模式

数据模式就是,我们可以使用自己的模板去创建React项目,比如使用vite webpack 等,然后自己安装React-router

npm i react-router #V7不在需要 react-router-dom
export const router = createBrowserRouter([
  {
    path: '/',
    Component: Home,
  },
  {
    path: '/about',
    Component: About,
  },
]);
  • 声明模式

声明模式,也可以用自己的模板创建React项目,然后自己安装React-router

npm i react-router #V7不在需要 react-router-dom
import React from "react";
import ReactDOM from "react-dom/client";
import { BrowserRouter, Routes, Route } from "react-router";
import App from "./app";
import About from '../about'
const root = document.getElementById("root");

ReactDOM.createRoot(root).render(
  <BrowserRouter>
    <Routes>
      <Route path="/" element={<App />} />
      <Route path="about" element={<About />} />
    </Routes>
  </BrowserRouter>
);

数据模式和声明模式的区别,数据模式可以享用React-router所有的功能,包括数据处理。而声明模式只能享用React-router的一部分功能,比如路由跳转。

基本使用

  • src/router/index.ts

pages目录创建两个组件,Home和About

新建目录router,在目录中新建文件index.ts,在文件中引入React-router,然后使用createBrowserRouter创建路由。

import { createBrowserRouter } from 'react-router';
import Home from '../pages/Home';
import About from '../pages/About';

const router = createBrowserRouter([
  {
    path: '/',
    Component: Home,
  },
  {
    path: '/about',
    Component: About,
  },
]);

export default router;
  • src/App.tsx

App.tsx文件中引入路由,然后使用RouterProvider包裹App组件。

import React from 'react';
import { RouterProvider } from 'react-router';
import router from './router';
const App: React.FC = () => {
  return (
    <>
      <RouterProvider router={router} />
    </>
  );
}

export default App;

路由跳转

Home组件中使用NavLink组件跳转到About组件。

import { NavLink } from 'react-router';
const Home: React.FC = () => {
  return (
    <div>
      <NavLink to="/about">About</NavLink>
    </div>
  );
};

export default Home;

About组件中使用Link组件跳转到Home组件。

import { NavLink  } from 'react-router';
const About: React.FC = () => {
  return (
    <div>
      <NavLink to="/">Home</NavLink>
    </div>
  );
};

export default About;
http://www.dtcms.com/a/109004.html

相关文章:

  • JDBC常用的接口
  • coding ability 展开第八幕(位运算——基础篇)超详细!!!!
  • Spring Boot 集成 Redis 对哈希数据的详细操作示例,涵盖不同结构类型(基础类型、对象、嵌套结构)的完整代码及注释
  • PyQt6实例_A股日数据维护工具_使用
  • OpenCV 引擎:驱动实时应用开发的科技狂飙
  • 操作系统(一):概念及主流系统全分析
  • 大模型学习三:DeepSeek R1蒸馏模型组ollama调用流程
  • Vue2 生命周期
  • Adam vs SGD vs RMSProp:PyTorch优化器选择
  • 美关税加征下,Odoo免费开源ERP如何助企业破局?
  • 【无标题 langsmith
  • DNS域名解析过程 + 安全 / 性能优化方向
  • 在线下载国内外各种常见视频网站视频的网页端工具
  • frp 让服务器远程调用本地的服务(比如你的java 8080项目)
  • AIGC7——AIGC驱动的视听内容定制化革命:从Sora到商业化落地
  • S3C2410 的总线架构
  • OpenCV 图形API(11)对图像进行掩码操作的函数mask()
  • RK3568 gpio模拟i2c 配置hym8563 RTC时钟
  • 19c21c单机/RAC手工清理标准化文档
  • 中小企业数字化转型的本质:在Websoft9应用平台上实现开源工具与商业软件的统一
  • GitHub 趋势日报 (2025年04月02日)
  • 《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》第2章 Java内存区域与内存溢出异常
  • springboot 启动方式 装配流程 自定义starter 文件加载顺序 常见设计模式
  • 【PHP】PHP网站常见一些安全漏洞及防御方法
  • DM数据库配置归档模式的两种方式
  • NOA是什么?国内自动驾驶技术的现状是怎么样的?
  • 清晰易懂的 Flutter 卸载和清理教程
  • 漫威蜘蛛侠2(Marvel‘s Spider-Man 2)
  • 算法复杂度:从理论到实战的全面解析
  • 电脑文件怎么压缩打包发送?