React Dva项目中路由跳转的方法

news2025/1/19 23:07:07

接下来 我们来看看路由跳转
先打开 我们Dva项目
在这里插入图片描述然后我们需要在routes 下创建一个自己的路由,如果您尚未掌握在Dva项目中创建路由,可以参考我的文章 React 在Dva项目中修改路由配置,并创建一个自己的路由

然后 我的项目有两个路由 router.js代码如下
在这里插入图片描述
一个 / 一个 /ProductPage

其实跳转路由的方式很多 第一种 Link
然后 我们在首页 / 下这样写

import { Link } from "dva/router";

这里 我们引入了Link组件 注意 这里 不再是router 而是 dva下的router 它做了一个封装
然后在页面上这样写

<Link to="/ProductPage">去ProductPage</Link>

使用这个Link组件 to指定要跳转的路径 /ProductPage
然后 我们运行项目
在这里插入图片描述
然后点击我们写的按钮
在这里插入图片描述
这里 就已经完成了跳转

但是 很多时候 我们希望在事件里面做跳转
首先 我们函数方式的组件 需要在方法中接一下props参数
在这里插入图片描述
如果是 类 class 的组件 可以这样 this.props 拿到
然后 我们外面声明一个事件

const toProductPage = () => {
   props.history.push("/ProductPage");
}

然后 页面上面 我们可以写个按钮 来点击调用这个函数

<Button onClick={ toProductPage } type="primary">Primary Button</Button>

在这里插入图片描述
运行项目
在这里插入图片描述
然后点击我们绑定事件的按钮 这样就完成页面的跳转了
在这里插入图片描述
我们 还可以通过 routerRedux 来完成
首先 引入它

import { routerRedux } from "dva/router";

还是在dva帮我们封装的router下面
然后 我们将之前的toProductPage改成这样

const toProductPage = () => {
    props.dispatch(routerRedux.push("/ProductPage"));
}

在这里插入图片描述
再次点击 依旧能顺利完成跳转

还有一个比较特殊的东西
我们在src下的 components 目录下创建一个 text.jsx
参考代码如下

import React from "react"
export default class Product extends React.Component {
    constructor(props){
      super(props);
      this.state = {
      }
    }

    toProductPage = () => {
        this.props.history.push("/ProductPage");
     }

    render(){
      return (
        <div>
           <button onClick={ this.toProductPage }>Primary Button</button>
        </div>
      )
    }
}

我们声明了一个class类形式的组件 然后 在根组件中引入它
在这里插入图片描述
运行项目 之后 我们尝试点击按钮
在这里插入图片描述
这里就报错了 因为这个组件并不在路由包裹下
在这里插入图片描述
在路由包裹下的 这有这两个组件
在这里插入图片描述
这时 我们可以通过withRouter来解决问题
我们将 text.jsx 代码改成这样

import React from "react"
import { withRouter } from "dva/router";
class Product extends React.Component {
    constructor(props){
      super(props);
      this.state = {
      }
    }

    toProductPage = () => {
        this.props.history.push("/ProductPage");
     }

    render(){
      return (
        <div>
           <button onClick={ this.toProductPage }>Primary Button</button>
        </div>
      )
    }
}

export default withRouter(Product)

withRouter 也是在dva封装的router中引入
然后 它是一个高阶函数
我们再次运行项目
然后 点击按钮
在这里插入图片描述
我们的页面跳转就完成了
在这里插入图片描述

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

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

相关文章

2. Spring 的创建和使用

目录 1. 创建 Spring 项目 1.1 创建一个 maven 项目 1.2 添加 Spring 框架支持 1.3 添加启动类 2. 存储 Bean 对象 2.1 创建 Bean 2.2 将 Bean 注册到容器 3. 获取并使用 Bean 对象 3.1 创建 Spring 上下文 ApplicationContext 和 BeanFactory 的区别&#xff08;重点…

《零基础入门学习Python》第054讲:论一只爬虫的自我修养2:实战

0. 请写下这一节课你学习到的内容&#xff1a;格式不限&#xff0c;回忆并复述是加强记忆的好方式&#xff01; 今天我们决定在实战中来进行学习&#xff0c;会举两个例子&#xff0c;第一个例子是我们会下载一只猫&#xff0c;第二个例子是我们用Python来模拟浏览器通过在线的…

MySQL数据库中 IF函数的使用

文章目录 使用IF函数进行简单条件判断IF函数的应用场景总结 IF函数作为MySQL数据库中的一个函数&#xff0c;可以在查询语句中进行条件判断并返回不同的结果。它有多种语法形式&#xff0c;包括简单的IF语句和复杂的CASE语句。在本篇文章中&#xff0c;我们将介绍IF函数的基本用…

Android 实现仿淘宝地址多级选择器

先看下效果图 仿淘宝的选择完城市出来的选择省市区之类的&#xff0c;这个支持自定义层级&#xff0c;多少层都可以使用&#xff0c;接下来是代码: BottomPopUtils.class&#xff0c;我写了一个工具类&#xff0c;方便全局调用 public class BottomPopUtils {public static P…

JAVA-正则表达式基本语法规则和Pattern,Matcher,PatternSyntaxException三大类

目录 引言 一&#xff0c;正则表达式基本语法规则 二&#xff0c;正则表达式的三大类方法 2.1&#xff0c;Pattern类 2.1.1&#xff0c;Pattern的常用方法matches&#xff08;&#xff09; 2.2&#xff0c;Matcher类 2.2.1&#xff0c;Matcher的常用方法find() 2.2.2&a…

vue3-Vite原理

1. vite的优势 1. 极速的服务启动2. 轻量快速的预加载.....2. 对vite的理解&#xff08;和webpack对比说明&#xff09; webpack要经过打包&#xff0c;然后在开发阶段启动服务器vite不需要打包 下图的"准备"就是编译的意思。 css的内容会编译程一个字符串。 组件会…

[SSM]手写Spring框架

目录 十一、手写Spring框架 第一步&#xff1a;创建模块myspring 第二步&#xff1a;准备好要管理的Bean 第三步&#xff1a;准备myspring.xml配置文件 第四步&#xff1a;核心接口实现 第五步&#xff1a;实例化Bean 第六步&#xff1a;给Bean属性赋值 第七步&#xff…

arcgis-利用等高线数据生成dem栅格

1、打开cass&#xff0c;展高程点&#xff0c;绘制三角网&#xff0c;绘制等高线&#xff0c;删除三角网和高程点。如下&#xff1a; 2、得到的等高线图&#xff0c;如下&#xff1a; 3、保存文件为dwg格式&#xff0c;随后打开arcmap软件&#xff0c;打开dwg的线层数据&#x…

【项目设计】基于负载均衡的在线oj平台

目录 一、项目介绍 二、开发环境以及技术 三、概要设计 四、关键算法 五、项目演示 六、代码实现 一、项目介绍 该项目是基于负载均衡的在线oj&#xff0c;模拟平时刷题网站&#xff08;leetcode和牛客&#xff09;写的一个在线判题系统 项目主要分为五个模块&#xff…

DevOps系列文章之 Git知识大全

refs和reflog Git的所有操作都基于提交&#xff1a;你会暂存提交&#xff0c;创建提交&#xff0c;查看过去的提交记录&#xff0c;或者使用很多很多Git命令在不同的仓库之间转移提交内容。这些命令中的很大一部分都会以某种形式来操作提交&#xff0c;其中很多还会以提交ID作…

结构型设计模式之代理模式【设计模式系列】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 设计模式系列 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everythi…

【iOS】对象底层学习

学习博客&#xff1a;[iOS]-OC对象底层探索 1. 类与对象 1.1 类和对象的本质 1.1.1 对象 对象的本质是结构体。 interface TestPerson : NSObject {// 成员变量// publicNSString *_age; // 4个字节 } property (nonatomic, copy) NSString *name; // 属性endimplementati…

C程序环境及预处理

​​​​​文章目录 一、程序的翻译环境和执行环境 1.程序编译过程 2.编译内部原理 3.执行环境 二、程序运行前的预处理 1.预定义符号归纳 2.define定义标识符 3.define定义宏 4.define替换规则 5.宏和函数的对比 三、头文件被包含的方式 四、练习&#xff1a;写一…

F.interpolate 数组采样操作

功能&#xff1a;利用插值方法&#xff0c;对输入的张量数组进行上\下采样操作&#xff0c;换句话说就是科学合理地改变数组的尺寸大小&#xff0c;尽量保持数据完整。 在计算机视觉中&#xff0c;interpolate函数常用于图像的放大(即上采样操作)。比如在细粒度识别领域中&…

【C#】MVC页面常见的重定向方式和场景

本篇文章主要简单讲讲&#xff0c;C# MVC 页面常见跳转或者重定向的方式和场景。 在实际项目开发中&#xff0c;在一些特定场景肯定会用到重定向&#xff0c;比如&#xff1a;不同角色跳转到不同视图地址 目录 一、种常见重定向方式1.1、RedirectToAction1.2、RedirectToRoute1…

猿人学14题—备而后动-勿使有变

猿人学14题—备而后动-勿使有变 抓包分析大致流程 mz参数生成m的值定位&参数组成补环境首先简单处理下十六进制编码问题提示&#xff1a;ReferenceError: window is not defined提示&#xff1a;document is not defined提示&#xff1a;$ is not definedASN1 is not defin…

【探索人工智能】我与讯飞星火认知大模型的对话

文章目录 讯飞星火认知大模型的地址概要讯飞星火认知大模型的发展历程讯飞星火认知大模型的主页利用讯飞星火大模型解决一些基本的数学问题讯飞星火认知大模型与OpenAI,ChatGPT没有关系&#xff01;让讯飞星火认知大模型编写传奇代码hello world小结 讯飞星火认知大模型的地址 …

chatgpt使用及辅助编程方面的体验

chatgpt使用及辅助编程方面的体验 文章目录 chatgpt使用及辅助编程方面的体验1 引言2 辅助编程体验2.1 辅助编写代码2.2 找出代码问题2.3 代码优化2.4 解释代码结束语 1 引言 最近几个月什么最火&#xff0c;那一定时chatgpt,虽然在国内使用存在各种限制&#xff0c;但是还是挡…

el-select和el-checkBox实现下拉菜单全选功能

el-select 和 el-checkbox 实现下拉菜单全选功能 示例代码&#xff1a; <el-selectpopper-class"select-container"v-model"ids"placeholder"请选择目标":multiple-limit"20"multiplefilterablecollapse-tagsclass"wd400&qu…

20230721 Essex UK, Dongbing Gu 公开讲座--机器人前沿

个人主页&#xff1a; https://www.essex.ac.uk/people/GUDON81301/dongbing-gu 机器人领域任务的特点&#xff1a;dull, dirty, dangerous tasks in remote spaces 机器鱼&#xff1a; 实时港口环境监测 机器鱼群探索算法 化学传感器 水面声呐定位系统/SLAM/通信问题 Robotic …