React框架----路由管理

news2024/11/24 7:29:35

文章目录

  • SPA
  • 路由
    • 路由基本使用
    • 路由组件与一般组件
    • NavLink

SPA

  • single page application
  • 只有一个页面
  • 异步请求数据,局部更新页面
  • 本地局部切换页面(不会向服务端加载整个页面)

路由

  • 地址栏路径与组件的对应关系
  • 切换路径,则切换组件(即局部页面)
  • react-router-dom 路由管理
  • Route 注册路由
  • Link负责跳转
  • 所有的路由相关内容放入BrowserRouter 或者HashRouter(地址带有#)内部
  • Switch 包裹所有的Route,匹配到一个地址,则不再继续匹配,展示当前地址对应的组件。
  • Redirect
  • NavLink 可以增加激活样式

路由基本使用

  • 创建项目,并安装依赖
# 新版本不能全局安装
npx create-react-app myreact
# 安装依赖
npm install -D react-router-dom@5

# 若是typescript模板,则
npm install -D @types/react-router-dom
  • index.jsx 入口文件
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import {BrowserRouter} from 'react-router-dom';

const root = ReactDOM.createRoot(
  document.getElementById('root') as HTMLElement
);
root.render(
  <BrowserRouter> 
    <App />
  </BrowserRouter>
);
  • App.jsx 所有组件的父组件
import React from 'react';
import "./index.css"
import {Link, Route} from 'react-router-dom'
import A from './components/A';
import B from './components/B';

//函数组件
function App() {
  return (
    <div className="App">
      {/* Link负责跳转 react-router-dom@5 */}
      <Link to="/a">page a</Link>
      <Link to="/b">page b</Link>

      {/* Route负责注册路由 */}
      <Route path="/a" component={A}></Route>
      <Route path="/b" component={B}></Route>
    </div>
  );
}

export default App;

  • pages 路由组件
import React from "react";
import './index.css'

//类组件
class A extends React.Component{

    render(){
        return (
            <div id="a">
                page A
            </div>
        )
    }
}

export default A
  • 进入项目目录,启动项目npm start
    完成!

路由组件与一般组件

  • 路由组件给Route使用,一般组件开发者使用。
  • 在pages下放置路由组件,components下放置一般的组件;
  • 路由组件的props可以接收到路由器传递的参数history/location/match;
    一般组件的props取决于传递了什么。

NavLink

可以给激活的连接,增加一个样式类名。

{
	//点击 哪个连接 就给它加一个样式lauf
}
<NavLink activeClassName='lauf' to="/a">page a</NavLink>
<NavLink activeClassName="lauf" to="/b">page b</NavLink>

封装NavLink
双标签中的文本为this.props.children

<MyLink a=1 b=2 c="c">我的组件</MyLink>

// 组件对象的props
this.props-->{a:1, b:2, c:"c", children: "我的组件"}

在这里插入图片描述

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

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

相关文章

YOLOv5+单目跟踪(python)

YOLOv5单目跟踪&#xff08;python&#xff09; 1. 目标跟踪2. 测距模块2.1 设置测距模块2.2 添加测距 3. 主代码4. 实验效果 相关链接 1. YOLOv5单目测距&#xff08;python&#xff09; 2. YOLOv7单目测距&#xff08;python&#xff09; 3. YOLOv7单目跟踪&#xff08;pytho…

JDBC详解(一):JDBC概述

JDBC概述 前言一、数据的持久化1、概念2、应用 二、Java中的数据存储技术三、JDBC介绍四、JDBC体系结构五、JDBC程序编写步骤 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识&#xff0c;有兴趣的小伙伴可以关注博主&#xff01;也许一个人独行&#…

全志 Orange Pi相关网站集

Orange Pi 系统安装的常识 看到有教程说android系统需要用win32diskimager才能成功烧写运行镜像名称与版本的对应关系 ubuntu版本号代号16.04Xenial Xerus&#xff08;好客的非洲地鼠&#xff09;18.04Bionio Beaver &#xff08;仿生海狸}20.04Focal Fossa &#xff08;类似…

DFIG控制10-b: 双馈发电机的转矩方程推导

DFIG控制10-b 双馈发电机的转矩方程推导 接上DFIG控制10&#xff1a; 双馈发电机的动态模型_Fantasy237的博客&#xff0c;DFIG的转矩方程和推导。 &#xff08;字数限制&#xff0c;只能放在新的一篇博文里了。。&#xff09; 转矩方程 定子αβ静止坐标系 从三相坐标系下…

Linux网络套接字(二)

学习任务&#xff1a; 继网络套接字&#xff08;一&#xff09;&#xff0c;继续学习套接字socket编程接口&#xff08;已经学习了socket和bind&#xff09;&#xff0c;实现TCP客户端/服务器(单连接版本, 多进程版本, 多线程版本&#xff0c;进程或线程池版本)&#xff0c;并且…

JavaScript(JS)-1.JS基础知识

1.JavaScript概念 (1)JavaScript是一门跨平台&#xff0c;面向对象的脚本语言&#xff0c;来控制网页行为的&#xff0c;它能使网页可交互 (2)W3C标准&#xff1a;网页主要由三部分组成 ①结构&#xff1a;HTML负责网页的基本结构&#xff08;页面元素和内容&#xff09;。 …

SPI协议——同步全双工串行通信方式

文章目录 前言一、简要介绍1、优点2、缺点 二、信号线和连接方式1、四根信号线2、连接方式2.1 多NSS形式2.2 菊花链形式 三、SPI配置1、时钟极性CPOL2、时钟相位CPHA3、四种模式4、数据大小5、其他配置参数 四、通信过程 前言 2023.4.22 阴 一、简要介绍 SPI&#xff1a;Seri…

什么是分组卷积、深度可分离卷积?附上深度可分离卷积代码

文章目录 分组卷积 Group Converlution1、由来和用途2、常规卷积和分组卷积的区别2.1、常规卷积&#xff1a;常规卷积的运算量&#xff1a; 2.2、分组卷积&#xff1a; 3、分组卷积的作用4、深度可分离卷积总结:先做分组卷积&#xff0c;再做1 x 1卷积深度可分离卷积代码 参考博…

【U-Net】训练自己的数据集

代码用的是b导的 整个训练流程也是根据b导的视频来的 源码地址&#xff1a;https://github.com/bubbliiiing/unet-pytorch 博客地址&#xff1a;https://blog.csdn.net/weixin_44791964/article/details/108866828 # 一、准备数据集 1、使用labelme软件标注数据&#xff0c;得…

深度学习 -- 什么是张量 pytorch中张量的几种创建方法

前言 在学习深度学习的过程中&#xff0c;遇到的第一个概念就是张量&#xff0c;张量在pytorch中的计算十分重要&#xff0c;所以本篇博客记录本人学习张量的过程&#xff0c;以及自己的理解。 张量是什么&#xff1f; 张量是一个多维数组&#xff0c;它是标量、向量、矩阵的…

SpringBoot的创建及配置文件

文章目录&#xff1a;一.Spring项目的创建&#xff08;1&#xff09;SpringBoot的含义 &#xff08;2&#xff09;SpringBoot的优点 &#xff08;3&#xff09;项目目录的运行和介绍 二.SpringBoot的配置文件 &#xff08;1&#xff09;配置文件的作用 &#xff08;2&#xff0…

E5--Aurora 8/10Bip核实现光纤接口通信2023-04-22

1.场景 使用两块开发板A和B&#xff0c;通过光纤接口将在A板上ROM中存储的图片数据转发到B板并显示在B板连接的显示屏上&#xff0c;实现光纤接口通信。 具体场景是&#xff0c;由于A735T片上资源有限&#xff0c;因此ROM IP存储了一张1024*600&#xff08;LVDS屏幕&#xff0…

集成光子学在计算领域的机会与挑战【光子学公开课 第133期】

没有听懂&#xff0c;自己浅浅记录一下 背景 深度学习与大模型带来的算力需求&#xff08;需要的算力指数型提高&#xff09; 解决方案 算力池化和算力网络 传统的主机服务&#xff0c;可能会存在闲置资源。 ->改变商业模式&#xff1a;不是出售硬件服务&#xff0c;…

【Makefile通用模板】入门必看篇,超详细

工程目录 假如我们有以下目录结构&#xff1a; . ├── inc │ ├── add.h │ └── sub.h ├── main.c └── src├── add.c└── sub.c文件中的内容如下&#xff1a; //main.c #include <stdio.h> #include "add.h" #include "sub.h&q…

nodejs+vue 智慧餐厅点餐餐桌预订系统

现在社会的生活节奏越来越快&#xff0c;人们对互联网的需求也越来越大&#xff0c;不仅要求使用方便&#xff0c;而且对于功能及扩展性也有了更高的要求&#xff0c;最能达到要求莫过于利用计算机网络&#xff0c;将所需功能要求和计算机网络结合起来&#xff0c;就形成了本智…

FOSSASIA Summit 的参会为 openEuler 全球化注入强心剂

2023年4月15日&#xff0c;亚洲顶级开源盛会FOSSASIA Summit 2023在新加坡落幕。openEuler作为白金赞助级别参会。 自2009年成立以来&#xff0c;除因疫情中断3年之外&#xff0c;FOSSASIA Summit已累计举办11年。作为亚洲年度开源技术旗舰活动&#xff0c;FOSSASIA Summit吸引…

C/C++ 常见编译器说明

文章目录 window下常用的编译器如何获取MSVCMinGW Linux和MaxOS下的编译器gcc和g的区别 window下常用的编译器 window下并不提供原生的类似gcc/g的类unix系统下的C/C编译器。常用的是 MSVC&#xff08;Microsoft Visual C/C&#xff09;编译器&#xff0c;在我们安装完visual …

python 获取脚本所在存储目录

获取.py文件所在目录 问题背景问题原因解决方法 问题背景 项目需要使用到当前脚本所在的目录然后保存文件 我像之前一样&#xff0c;使用了os.getcwd() 去获取脚本目录&#xff0c;保存文件&#xff0c;程序正常运行&#xff0c;但设定路径下没有任何文件&#xff0c;没有头脑…

读 AI学者生存策略

链接&#xff1a;https://arxiv.org/pdf/2304.06035.pdf 作者&#xff1a;Julian Togelius and Georgios N. Yannakakis 随着大模型 和 大数据的出现&#xff0c; AI研究者 都会感到焦虑。 没有计算资源 &#xff0c;没有标注的人力&#xff0c;很难做出突破性的研究。即使很多…

FFmpeg 中 RTSP推流桌面和Android设备延时测试

文章目录 1. FFMPEG 推流&#xff1a;1.1 FFmpeg 源码准备1.2 RTSP 推流服务器 2. 执行流程2.1 启动服务器2.2 执行桌面推流2.3 播放 3. 安卓测试 1. FFMPEG 推流&#xff1a; 1.1 FFmpeg 源码准备 官网&#xff0c;GitHub&#xff0c;CSDN中选一个就好&#xff1a; ● 官网…