笔记二十三**、编程式路由导航

23.1 父组件引入 useNavigate

import {NavLink, Outlet, useNavigate} from "react-router-dom";
......
// 编程式路由导航const navigate = useNavigate();const toClassify = () => {navigate('classify', {state: {param_C: 'elendalee', param_D: 20}})};
......
<button onClick={toClassify}>classify</button>

父组件 Home/ndex.jsx

import React from "react";
import {NavLink, Outlet, useNavigate} from "react-router-dom";const Home = () => {// 类组件中不能用const定义变量// 选中高亮const activeStyle = ({isActive}) => {return isActive ? 'background' : "";};// 编程式路由导航const navigate = useNavigate();const toClassify = () => {navigate('classify', {state: {param_C: 'elendalee', param_D: 20}})};return (<div>首页的页面<div style={{display: "flex", justifyContent: 'center', marginTop: '20px'}}>i<NavLink to='navigation' className={activeStyle}>navigation</NavLink></div><div style={{background: 'red'}}>{/*<!-- Renders the child route's element, if there is one. -->*/}<Outlet/></div></div>);}export default Home;

子组件 classify.jsx

import React from 'react';
import {useLocation} from "react-router-dom";const Classify = () => {// 两次结构赋值const {state: {param_C, param_D},} = useLocation();return (<div>分类的页面<div>父组件home传递的参数1:{param_C}父组件home传递的参数2:{param_D}</div></div>);
}export default Classify;

路由表

import {Navigate} from "react-router-dom";
import Home from "../components/Home";
import About from "../components/About";
import Classify from "../components/Home/components/Classify.jsx";
import Navigation from "../components/Home/components/Navigation.jsx";export default [{path: '/home',element: <Home/>,children: [{path: 'classify',element: <Classify/>},{path: 'navigation',element: <Navigation/>},]},{path: '/about',element: <About/>,},{path: '/',element: <Navigate to='about'/>,}
]

main.jsx

import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import { HashRouter } from "react-router-dom";// 日常开发推荐 哈希路由 HashRouter 防止出现404报错
ReactDOM.createRoot(document.getElementById("root")).render(<React.StrictMode><HashRouter><App text={"react"} /></HashRouter></React.StrictMode>
);

app.jsx

import React from "react";
import {NavLink, useRoutes} from "react-router-dom";
import routes from "./routes/index.jsx";
import "./app.css"const App = () => {const element = useRoutes(routes);// 选中高亮const activeStyle = ({isActive}) => {return isActive ? 'background' : "";};return (<div className="all"><div><div className="link"><NavLink to="/home" className={activeStyle}>打开首页的页面</NavLink></div><div className="link"><NavLink to="/about" className={activeStyle}>打开关于的页面</NavLink></div></div><div className="view">{element}</div></div>);
}export default App;

 

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

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

相关文章

Pinctrl子系统和GPIO子系统实验

驱动入口出口函数&#xff1a; static int __init led_init(void) {return 0; } static void __exit led_exit(void) { }module_init(led_init);module_exit(led_exit);MODULE_LICENSE("GPL");字符设备驱动那一套 先创建设备结构体 &#xff08;cdev&#xff09; 1…

汇编:常用的输入与输出

1.字符输出 使用int 21h中断的02h号功能可以在屏幕输出一个字符&#xff0c;dl中存放要输出字符的ascii码。 如下代码将在屏幕输出一个字符“a”&#xff1a; mov ah,02hmov dl,aint 21h 2.字符输入 使用int 21h中断的01h号功能可以接受一个字符&#xff0c;al存放输…

控制台gbk乱码

引用IntelliJ IDEA中 统一设置编码为utf-8或GBK-CSDN博客 特别注意file coding 的文件path和java的编码格式 配置

Rust语言入门教程(十一) - 集合类型Collections

什么是Collections 在 Rust 中&#xff0c;collections 是一组用于存储多个值的标准库数据结构。不同于数组和元组&#xff0c;collections 可以存储可变数量的数据。Rust 的标准库提供了几种常用的集合类型&#xff0c;每种类型都有其特定的用途和性能特点。 Vector - 向量 …

Linux 基本语句_12_信号

用途&#xff1a; 信号可以直接进行用户进程与内核进程之间的交互 特性&#xff1a; 对于一个进程&#xff0c;其可以注册或者不注册信号&#xff0c;不注册的信号&#xff0c;进程接受后会按默认功能处理&#xff0c;对于注册后的信号&#xff0c;进程会按自定义处理 自定义…

【PTA题目】7-12 N个数求和 分数 20

7-12 N个数求和 分数 20 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 本题的要求很简单&#xff0c;就是求N个数字的和。麻烦的是&#xff0c;这些数字是以有理数分子/分母的形式给出的&#xff0c;你输出的和也必须是有理数的形式。 输入格式&#xff1a; 输入第一行…

代码随想录训练营第30天 | 332.重新安排行程、51. N皇后、37. 解数独

332.重新安排行程 题目链接&#xff1a;重新安排行程 解法&#xff1a; 这个题&#xff0c;卡哥的思路会超时。辛辛苦苦看懂了卡哥的思路&#xff0c;结果超时了&#xff0c;直接崩溃。 看了leetcode官方的思路&#xff0c;非常简洁&#xff0c;但是里面的深意还是不太懂。 由…

如何通过信息化为燃气管道提供数据监控、智能的调度和作业技术?

关键词&#xff1a;智慧燃气、燃气监控、智慧管网、智慧燃气管网、智慧燃气管网解决方案、城市燃气管网 在信息化迅猛发展的历史潮流中&#xff0c;如何通过信息化为燃气管道提供更广泛的数据监控、更紧密的数据集成、更智能的调度和作业、更智慧的分析和决策&#xff0c;为安…

《李光耀观天下》书摘

一、中国&#xff1a;一个强大的中央 他从不抱怨或发牢骚&#xff0c;努力工作&#xff0c;慢慢的证明自己。 你们完全可以做到比我们更好&#xff0c;因为我们是中国南方没有土地的农民后代。你们有学者&#xff0c;有科学家&#xff0c;有专家。你们将比我们做得更好。 邓…

01-鸿蒙4.0学习之开发环境搭建 HelloWorld

HarmonyOS开发学习 1.环境配置 1.下载地址 开发工具&#xff1a;DevEco Studio 3.1.1 Release 下载地址 安装选择快捷方式 安装nodejs和Ohpm 安装SDK 选择同意Accept 检测8项目是否安装成功 2.创建项目 —— hello word

C语言第三十五弹---打印九九乘法表

C语言打印九九乘法表 思路&#xff1a;观察每一行可以看出乘号右边的一行值都是相同的&#xff0c;而乘号左边不断变化&#xff0c;所以使用嵌套循环&#xff0c;控制好 乘号左右值变化的条件即可。 #include <stdio.h>int main() {for (int i 1; i < 9; i){for (in…

森林无人机高效解决巡查难题,林区防火掀新篇

山东省某市为了强化森林火灾防范&#xff0c;采用了一项新兴手段——复亚智能无人机森林火情监测系统。这套系统在AI飞行大脑的指挥下&#xff0c;让无人机在空中巡逻&#xff0c;实现了无人机森林防火系统的实施落地。 一、AI大脑如何引领森林无人机高空巡逻&#xff1f; 在山…

jQuery_10 jQuery中的网路请求(AJAX)

jQuery中如何使用网络请求呢&#xff1f; 使用jQuery提供的函数实现ajax请求的处理 代替直接使用xmlhttprequest对象 但是jQuery实际上还是使用的异步对象&#xff0c;其实就是简化了步骤&#xff0c;但是根源是一样的 1.$.ajax() 1.$.ajax({ url:请求的地址, // 必须的 type…

C++ :const修饰成员函数

常函数&#xff1a; 常函数&#xff1a; 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后&#xff0c;在常函数中依然可以修改 属性可修改&#xff1a; class Person { public: void showPerson() …

【开题报告】基于uniapp的瑜伽学习交流小程序的设计与实现

1.选题背景 瑜伽在现代社会中越来越受到人们的关注和喜爱。它不仅可以帮助人们塑造健美的身材&#xff0c;还能促进身心健康、提高生活质量。然而&#xff0c;由于瑜伽动作的复杂性和技巧性&#xff0c;很多初学者在学习过程中会遇到困难和挑战。 同时&#xff0c;由于工作和…

3-docker-基于ubuntu镜像构建redis镜像

第一步&#xff1a;编辑Dockerfile 第二步&#xff1a;执行命令构建镜像 第三步&#xff1a;查看构建完成的镜像 第四步&#xff1a;镜像运行成容器 第五步&#xff1a;查看正在运行的容器 第六步&#xff1a;进入到容器 第一步&#xff1a;编辑Dockerfile vi Dockerfile# 写入…

云原生实战课大纲<2>

我们pod的数据挂载文件可以使用 pv-pvc的方式 1. 创建pv池 2. 在pv池中创建pv&#xff0c;并且设置pv的模式 3. 编写pod 写对应的pvc 申请书 就可以了这就是我们k8s中的pv和pvc 基于pv池创建pv的时候会有容量限制呢么关于配置呢&#xff0c;我们以前会有这种场景 比如说在dock…

Java之API(上):Character

一、前言&#xff1a; 我们上次讲到 java.lang.*下的八大包装类&#xff1a; 八大包装类 基本数据类型byteshortintlongfloatdoublecharboolean引用数据类型(对象)ByteShortIntegerLongFloatDoubleCharacterBoolean 之前讲到了比较常用的Integer包装类&#xff0c;但是前面6个包…

文件夹重命名:克服语言障碍,批量将中文文件夹名翻译成英文

随着全球化的不断深入&#xff0c;英语成为了世界上最广泛使用的语言。在日常生活和工作中&#xff0c;可能经常要将中文文件夹名翻译成英文&#xff0c;以便交流或满足特定需求。手动翻译文件夹名不仅耗时&#xff0c;还容易出错。那有什么方法可以快速、准确地批量将中文文件…

力扣 965. 单值二叉树

目录 1.解题思路2.代码实现 1.解题思路 如果一个结点的子节点与其相同&#xff0c;那么就沿着子节点进行遍历. 2.代码实现 bool isUnivalTree(struct TreeNode* root){ if(rootNULL)return true;if(root->left){if(root->val!root->left->val||!isUnivalTree(ro…