在react项目中使用react-router-dom

如何在react项目中使用react-router-dom

  1. 使用 npx create-react-app b初始化项目,npm i react-router-dom安装router依赖
  2. 首先从react-router-dom包中导出createBrowserRouter对象来创建路由对象和router.js文件
// 创建router文件
import { createBrowserRouter } from "react-router-dom";
import App from "./App.js";
export default createBrowserRouter([{path: "/",element: <App />,},
]);
  1. 把router.js文件挂载到启动文件index.js中,因为使用router渲染组件,默认渲染的App组件就可以删掉,改用<RouterProvider router={router} />来代替
import router from "./router";
import { RouterProvider } from "react-router-dom";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<RouterProvider router={router} />
);
  1. 这样启动项目根目录就可以匹配到App组件了

创建子路由

  1. 子路由在一个项目是一定会有的。修改router.js文件和App.vue。
// router.js
import { createBrowserRouter, Navigate, Link } from "react-router-dom";
import App from "./App.js";
export default createBrowserRouter([{path: "/",element: <App />,children: [{path: "/a",element: (<><div>a</div></>),},{path: "/b",element: (<><div>b</div></>),},],},
]);
  1. 在App.vue中有一个注意,使用子路由的时候需要给子路由设置一个出口组件<Outlet />,同时可以使用<Link />组件来实现路由跳转。
// App.vue
import "./App.css";
import { Outlet, Link } from "react-router-dom";
function App() {return (<div className="App"><Link to="/">首页</Link><Link to="/a">a</Link><Link to="/b">b</Link><Outlet /></div>);
}export default App;
  1. 注意事项
    7.1 在index.js文件中挂载router文件时,使用<RouterProvider router={router} />挂载,删除掉原有的默认渲染的<App />组件
    7.2 要使用<Outlet />来给子路由设置出口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL面试题系列-12

MySQL是一个关系型数据库管理系统&#xff0c;由瑞典 MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的RDBMS (Relational Database Management System&#xff0c;关系数据…

在图片上画出mask和pred

画出论文中《Variance-aware attention U-Net for multi-organ segmentation》的图1&#xff0c;也就是在原图上画出mask和pred的位置。 新建一个文件夹 然后运行代码&#xff1a; import cv2 import os from os.path import splitext####第一次&#xff1a;把GT&#xff08…

【文件IO】JavaIO详解

一.文件的相关概念 什么是文件? 文件是计算机中存储信息的基本单位。文件通常指的是存储在计算机或其他数字存储设备上的一段信息的集合&#xff0c;这些信息可以是文本、图片、音频、视频等不同格式的数据。 文件路径: 文件的路径可以分为两类 相对路径:先指定一个"当前…

武汉星起航:成功挂牌,董事长张振邦:将持续为创业者提供支持

2023年10月30日&#xff0c;对于武汉星起航电子商务有限公司来说&#xff0c;是一个值得铭记的历史时刻。这一天&#xff0c;公司在上海股权托管交易中心成功挂牌展示&#xff0c;这不仅是公司发展历程中的一个重要里程碑&#xff0c;更是对其不懈努力和卓越成就的肯定。 武汉…

求三角形面积(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;double a, b, c, s, area;//赋值&#xff1b;a 3.67;b 5.43;c 6.21;//运算求s&#xff1b…

【宝德PI300T G2智能小站开发教程(一)】如何配置通讯开发环境

目录 一.前言 二.windows通讯连接 1.安装ssh,scp等工具。 2.硬件准备 3.windows部署网络共享

阿里云ECS服务器上如何白嫖一年的腾讯云的SSL证书(详细保姆教程)

有的时候&#xff0c;我们在阿里云上有一个ECS备案的服务器&#xff0c;而且也有域名&#xff0c;但是现在很多场景下是需要Https协议的&#xff0c;如果用宝塔搭建网站系统的话&#xff0c;就需要一个SSL证书&#xff0c;目前阿里云上SSL证书购买要么是付费的&#xff0c;要么…

Leetcode算法训练日记 | day21

一、二叉搜索树的最小绝对差 1.题目 Leetcode&#xff1a;第 530 题 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,2,…

mapv修改源码实现图标和管道到统一页面显示,图标和管道和点击

一、效果图 二、背景 map 地图添加marker&#xff0c;是操作的dom&#xff0c;而mapv是使用的canvas方式&#xff0c;所以性能要好 三、Mapv和MapVGL的区别 百度地图 JavaScript API GL快速升级 和mapVGL的使用 Mapv 是一款基于百度地图的大数据可视化开源库&#xff0c;可以…

hibernate注解方式

hibernate注解方式 现在很多时候大家都认为使用xml配置过于繁琐&#xff0c;更习惯于使用注解的方式进行配置hibernate的映射关系了&#xff0c;可以将注解放在属性上&#xff0c;也可以放在getter方法上 // 标注该类是一个实体&#xff0c;name表示表名Entity(name "log…

【Linux】socket编程2

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 目录 &#x1f449;&#x1f3fb;客户端代码Makefile(生成目标文件)UdpClient.cc(客户端代码)服务端代码部分优化1&#xff08;接受客户端时显示客…

ffmpeg 将多个视频片段合成一个视频

ffmpeg 将多个视频片段合成一个视频 References 网络视频 6 分钟的诅咒。 新建文本文件 filelist.txt filelist.txtfile output_train_video_0.mp4 file output_train_video_1.mp4 file output_train_video_2.mp4 file output_train_video_3.mp4 file output_train_video_4.m…

淘宝扭蛋机小程序源码搭建:打造专属电商娱乐新平台

在数字化浪潮的推动下&#xff0c;电商平台不断创新&#xff0c;以满足消费者日益多样化的需求。淘宝扭蛋机小程序作为一种创新的电商娱乐形式&#xff0c;受到了广大用户的热烈追捧。为了满足市场需求&#xff0c;许多企业和开发者开始关注淘宝扭蛋机小程序的源码搭建&#xf…

Spring6-单元测试:JUnit

1. 概念 在进行单元测试时&#xff0c;特别是针对使用了Spring框架的应用程序&#xff0c;我们通常需要与Spring容器交互以获取被测试对象及其依赖。传统做法是在每个测试方法中手动创建Spring容器并从中获取所需的Bean。以下面的两行常见代码为例&#xff1a; ApplicationCo…

[C语言][数据结构][链表] 单链表的从零实现!

目录 零.必备知识 1.一级指针 && 二级指针 2. 节点的成员列表 a.数据 b.指向下一个节点的指针. 3. 动态内存空间的开辟 (malloc-calloc-realloc) 一.单链表的实现与销毁 1.1 节点的定义 1.2 单链表的尾插 1.3 单链表的头插 1.4 单链表的尾删 1.5 单链表的头删 1…

web蓝桥杯真题:外卖给好评

代码&#xff1a; <ul class"rate-list"><li><!-- TODO 补全 el-rate 属性 -->送餐速度&#xff1a;<el-rate show-score"true" changechangeSpeed($event) v-model"speed"></el-rate></li><li><…

挑错罐头=“害猫”!猫咪主食罐到底应该怎么选?

猫咪罐头已经成为众多猫奴们的喂养首选。它富含水分&#xff0c;有助于猫咪保持良好的泌尿系统健康&#xff0c;尤其对于那些不太喜欢饮水的猫咪来说&#xff0c;罐头无疑是补充水分的理想方式。罐头的口感极佳&#xff0c;肉质细腻&#xff0c;能够激发猫咪的食欲&#xff0c;…

optuna自动调参

定义 x , y ∈ ( − 10 , 10 ) x,y\in(-10, 10) x,y∈(−10,10)&#xff0c;求 f ( x ) ( x y ) 2 f(x)(xy)^2 f(x)(xy)2取得最大值时&#xff0c; x , y x,y x,y的取值&#xff1f;import optuna def objective(trial): x trial.suggest_uniform(‘x’, -10, 10) y trial…

C语言—每日选择题—Day65

前言 我们的刷题专栏又又又开始了&#xff0c;本专栏总结了作者做题过程中的好题和易错题。每道题都会有相应解析和配图&#xff0c;一方面可以使作者加深理解&#xff0c;一方面可以给大家提供思路&#xff0c;希望大家多多支持哦&#xff5e; 第一题 1、如下代码输出的是什么…

深入理解LRU缓存算法:原理、应用与优化

LRU算法&#xff08;Least Recently Used&#xff0c;最近最少使用算法&#xff09;的思想是基于"时间局部性"原理&#xff0c;即在一段时间内&#xff0c;被访问过的数据在未来仍然会被频繁访问的概率较高。 LRU 原理 LRU算法的主要思想是将最近被使用的数据保留在…