react 编程式导航实现页面跳转

2023-10-27

一 介绍

编程式导航: 通过js代码来实现页面跳转

案例:点击登录按钮,登录成功后,通过代码跳转到后台首页,如何实现?

答:
props.history.push("./home")
props.history.go(-1)
    history:是react路由提供的,用来获取 浏览器历史记录的相关信息.
    push(path):跳转到某个页面,参数path表示要跳转的路径
    go(n):返回某个页面,参数n表示前进或后退页面数量(-1表示后退一页)

二 代码

import React from "react";
import {createRoot} from 'react-dom/client';
//导入路由的核心组件
import {HashRouter, BrowserRouter as Router, Route, Link} from "react-router-dom"

class App extends React.Component {
    render() {
        return (
            <Router>
                <h2>编程式导航app</h2>
                <Link to="/login">去登录页面</Link>
                <Route path="/login" component={Login}></Route>
                <Route path="/home" component={Home}></Route>
            </Router>
        )
    }
}

class Login extends React.Component {
    fn = () => {
        this.props.history.push("./home")
    }

    render() {
        return (
            <div>
                <h2>这是登录页面</h2>
                <button onClick={this.fn}>登录</button>
            </div>
        )
    }
}

const Home = (props) => {
    const back=()=>{
        //go(-1)表示返回上一个页面
        props.history.go(-1);
    }
    return(

        <div>
            <h2>我是后台首页</h2>
            <button onClick={back}>返回登录页面</button>
        </div>
    )
}

createRoot(document.getElementById('root')).render(<App/>);

效果

 点击链接 "去登录页面" →  展示 登录页面

 点击 登录页面的 登录按钮 → 展示后台首页

 点击后台页面的 返回按钮 → 返回登录页面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react 编程式导航实现页面跳转 的相关文章

随机推荐

  • 数据结构:最小生成树--Prim算法

    最小生成树 Prim算法 最小生成树 给定一无向带权图 顶点数是n 要使图连通只需n 1条边 若这n 1条边的权值和最小 则称有这n个顶点和n 1条边构成了图的最小生成树 minimum cost spanning tree Prim算法
  • nginx启动成功,访问不了

    前言 服务器 阿里云服务器 Ubuntu 16 04 3 LTS 自己弄了个学习的demo 搭建了vue elementui spring boot 前后端分离 将项目部署到服务器上面 装好nginx 为了避免冲突 将端口改为了8001 启
  • 屏幕内底部虚拟按键NavigationBar处理

    华为 OPPO 等手机屏幕内底部虚拟按键处理 游戏适配方案 Override public void onWindowFocusChanged boolean hasFocus super onWindowFocusChanged hasF
  • BUUCTF WEB 极客大挑战 2019 LoveSQL

    题目 解题 1 输入万能密码 用户名 admin or 1 1 密 码 1 2 确定回显列 用户名 1 union select 1 2 3 select 1 2 逐步增加 直到不报错即得到正确的列数 密 码 1 说明查询列数为3 回显列为
  • 范式:模式分解,一范式分解成二范式、三范式

    模式分解 第一范式 关系模式R中的每个关系rd的属性值都是不可再分的原子值 第二范式 关系模式R是1NF 不存在局部依赖 那么称R是2NF 第三范式 关系模式R是2NF 不存在传递依赖 那么称R是3NF 此处只讲模式分解的具体方法 讲解参考
  • 时间复杂度详解

    目录 一 算法效率 1 什么是算法效率 2 算法效率有什么用 3 算法的复杂度 二 时间复杂度 1 什么是时间复杂度 2 什么计算时间复杂度 3 大O的渐进表示法 4 时间复杂度计算实例 三 空间复杂度 1 什么是空间复杂度 2 空间复杂度
  • 图像超分辨的几种方法

    当前看了几种图像超分辨的方法 本篇博客主要介绍 最近邻插值算法 双线性插值算法 双三次插值算法 bicubic interpolation SRCNN TNRD ESPCN 几种方法 为了方便归纳 这里借鉴一下其他几个博主的相关总结 1 最
  • 【cmd】命令大全/黑窗体

    提示 该内容是作者网上查找总结的 文章目录 前言 CMD命令锦集 黑窗体命令锦集 前言 cmd常用命令记不住 没事 收藏生灰就行了 CMD命令锦集 gpedit msc 组策略 explorer 打开资源管理器 logoff 注销命令 sh
  • C语言-局部变量、全局变量、静态变量和生命周期

    一 局部变量与全局变量 1 局部变量 在函数内部定义的变量是局部变量 局部变量的有效范围是局限于函数内部的 形参也是局部变量 局部变量的改变无法影响到主调函数 正是因为局部变量的有效使用范围的局限 可以最大程度的确保各函数之间的独立性 避免
  • FPAG故障一例

    最近在弄FPGA LFXP2 5E的代码 在编译过程中老出现 module spd ignored due to previous errors 问题 经过几次总结一下这个故障的原因 1 在模块中begin 与end不对应 2 语句结束时没
  • inner join执行计划变了

    一 背景 同一个连接查询inner join 由于某一个条件in里多了几个值 执行计划变了 执行计划一 执行计划二 二 外连接与内连接的区别 连接查询的成本计算公式是这样的 连接查询总成本 单次访问驱动表的成本 驱动表扇出数 x 单次访问被
  • ES6新增方法和属性以及ajax笔记

  • Scala学习(四)

    文章目录 1 闭包 2 函数式编程递归和尾递归 2 1递归 2 2 尾递归 3 控制抽象 3 1 值调用 3 2 名调用 4 惰性函数 1 闭包 如果一个函数 访问到了它的外部 局部 变量的值 那么这个函数和它所处的环境称之为闭包 闭包练习
  • ChatGLM-6B 本地安装、部署和运行的常见问题解答及优化建议

    分享一点自己本地安装部署运行 ChatGLM 6B 的过程中的心得和二次优化开发吧 主要是比如怎么防止GPU运行时爆显存 GPU运行时减少显存占用 一些常见的报错应该怎么解决 推理参数的调整方案 怎么开启局域网访问 怎么给网页加上HTTPS
  • AI绘画你必须要知道5个tag进阶用法

    哈喽 大家好 我是阿宅 最近AI绘画也是很火 阿宅这几天也是静下心来好好研究了一下这个东西 确实好用啊 总所周知啊 这些前沿技术一直都是大厂来开拓和引导的 这不已经有消息说 某某大厂已经基于AI做好了一套完整的商业化流程了 不管是小白还是行
  • eclipse下载与安装(汉化教程)超详细

    一 下载eclipse安装包 首先进入 eclipse官网 如下 这里面有很多版本 我们小白一般选择第二个 向下滑动 点击符合自己系统的版本 这里我们切换镜像下载 一般选择离你最近的地址下载 我建议选择大连东软信息学院 如果不切换镜像的话
  • AIGC、数字人、ChatGPT:人工智能新浪潮,比移动互联网大十倍

    毫不夸张地说 投资行业正在进入 地狱模式 3000家投资机构正在疯狂看项目 在人工智能行业 由于技术的发展 正在迎来新的投资机遇 在这个过程中 相关公司很容易 拿到大钱 有投资人确信 这个趋势将持续10年 数科星球 原创 作者丨苑晶 编辑丨
  • Intellij IDEA中push代码到Github上时报错:OpenSSL SSL_read: Connection was reset, errno 10054

    具体错误 Push failed Unable to access https github com xxx xxx git OpenSSL SSL read Connection was reset errno 10054 1 检查网络
  • python进制转换

    十进制数转其他进制 获取用户输入十进制数 num int input 输入数字 print 十进制数为 num print 转换为二进制为 bin num print 转换为八进制为 oct num print 转换为十六进制为 hex n
  • react 编程式导航实现页面跳转

    一 介绍 编程式导航 通过js代码来实现页面跳转 案例 点击登录按钮 登录成功后 通过代码跳转到后台首页 如何实现 答 props history push home props history go 1 history 是react路由提