React实现页面之间的跳转

2023-11-15

1. 需求说明

目前在学习过程中需要结合自己之前复现的论文算法弄一个人工智能安全平台系统,其中需要做一个前端展示我们的模块,我们点击模块就可以跳转到相应的界面,因为之前做过一个这样的前端展示界面,但是是在别人的项目上改造过来的,很多技术细节都没有搞明白,这次做的就是自己亲自搭建的一个前端界面,所以需要用到关于React页面跳转的知识,下面就介绍下自己实现的这个基础功能吧。

2. 技术实现

功能很简单,就是实现一个界面到另外一个界面之间的跳转,所以这里涉及到React里面的路由知识。
首先,我们需要安装React中的一个核心包:react-router-dom
react-router-dom-----应用于浏览器端的路由库(webApp)
使用yarn安装:

yarn add react-router-dom

或者使用npm安装:

npm install react-router-dom --save

安装完成之后我们需要开始写我们的跳转界面,首先我们先写一个主界面,然后在主界面里面添加四张图,点击图片可以跳转到相应的界面。

3. 代码展示

这里只展示部分核心代码:

  1. 在views/home/ndex.js 新建js文件
  2. 然后使用Link跳转标签实现页面跳转
import React from 'react';
import 'antd/dist/antd.css';
import { Layout, Menu, Breadcrumb, Row, Col } from 'antd';
import tempImag from '../../assets/images/defense.png'
import attackImg from '../../assets/images/attack.png'
import detectImg from '../../assets/images/detect.png'
import privacyImg from '../../assets/images/privacy.png'
import { Link } from 'react-router-dom';


const { Header, Content, Footer } = Layout;

function Home() {
    return (
    <Layout className="layout" style={{height:700}}>
        <Header>
            <div className="logo" />
            <Menu theme="dark" mode="horizontal" >
                人工智能安全平台
            </Menu>
        </Header>

        <Content style={{ padding: '0 50px' }}>
            <Breadcrumb style={{ margin: '16px 0' }}>
                <Breadcrumb.Item>Home</Breadcrumb.Item>
                <Breadcrumb.Item>List</Breadcrumb.Item>
                <Breadcrumb.Item>App</Breadcrumb.Item>
            </Breadcrumb>
            <div style={{marginTop: 100, marginLeft: 20, marginRight: 50}}>
            <Row gutter={100} justify="center">
                <Col>
                    <div className='base-style'>
                        <Link to="/attack/" style={{color:'black'}}>
                        <img src={attackImg}/>
                        </Link>

                    </div>
                    <p style={{fontFamily: "宋体", textAlign: "center"}}>对抗攻击</p>
                </Col>
                <Col>
                    <div className='base-style'>
                        <Link to="/detect/" style={{color:'black'}}>
                            <img src={detectImg}/>
                        </Link>
                    </div>
                    <p style={{fontFamily: "宋体", textAlign: "center"}}>对抗检测</p>
                </Col>


                <Col>
                    <div className='base-style'>
                        <Link to="/defense/" style={{color:'black'}}>
                            <img src={tempImag}/>
                        </Link>
                    </div>
                    <p style={{fontFamily: "宋体", textAlign: "center"}}>对抗防御</p>
                </Col>
                <Col>
                    <div className='base-style'>
                        <Link to="/dataPrivacy/" style={{color:'black'}}>
                            <img src={privacyImg}/>
                        </Link>
                    </div>
                    <p style={{fontFamily: "宋体", textAlign: "center"}}>数据隐私</p>
                </Col>
            </Row>

            </div>

            {/*<div className="site-layout-content">Content</div>*/}
        </Content>
        <Footer style={{ textAlign: 'center' }}>人工智能安全平台 ©2021 Created by 广州大学人工智能与区块链学院</Footer>
    </Layout>

    );
}

export default Home;

  1. 我们还需要在src/index.js中配置路由,如下所示:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { HashRouter as Router, Route, Redirect, Switch } from 'react-router-dom';
import { mainRoute } from './routes';
import Attacks from './views/attack';
import Defense from './views/defense';
import Detect from './views/detect';
import DataPrivacy from './views/dataPrivacy';

ReactDOM.render(
    <Router>
        <Switch>
            <Route path="/admin" component={App}/>
            <Route path="/attack" component={Attacks}/>
            <Route path="/defense" component={Defense}/>
            <Route path="/detect" component={Detect}/>
            <Route path="/dataPrivacy" component={DataPrivacy}/>
            {
                mainRoute.map( (route, key)=>{
                    return <Route path={route.pathname} component={route.component} key={key}/>
                })
            }

            <Redirect to='/home' from='/' exact/>
        </Switch>
    </Router>,
    document.getElementById('root')
);

reportWebVitals();

完整代码链接:1. React实现页面跳转
记得给个star,哈哈哈

4. 效果展示

在这里插入图片描述

5. 参考文献

1. react 路由跳转 / react-router-dom 使用

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

React实现页面之间的跳转 的相关文章

  • React中的“计算属性”

    React中的 计算属性 相信许多学习过vue的小伙伴对计算属性都不陌生吧 计算属性能帮我们数据进行一些计算操作 计算属性是依赖于data里面的数据的 在vue中只要计算属性依赖的data值发生改变 则计算属性就会调用 那React中也有计
  • React + Umi + Dva + Antd 简述 及创建项目过程简述

    React 你的第一个组件 React React是前端三大主流框架之一 你可以在React里传递多种类型的参数 如声明代码 帮助你渲染出UI 也可以是静态的HTML DOM元素 也可以传递动态变量 甚至是可交互的应用组件 安装react框
  • React重点知识拓展,含Hooks、路由懒加载等

    第7章 React扩展 一 setState 1 setState更新状态的2种写法 setState stateChange callback 对象式的setState stateChange为状态改变的对象 该对象可以体现出状态的更改
  • css in js开发利器 - styled-components(样式组件)

    styled components 是一个常见的 css in js 类库 和所有同类型的类库一样 通过 js 赋能解决了原生 css 所不具备的能力 比如变量 循环 函数等 注意 有时候 React 版本和 styled componen
  • 对Fiber架构的理解?解决了什么问题?

    一 问题 JavaScript引擎和页面渲染引擎两个线程是互斥的 当其中一个线程执行时 另一个线程只能挂起等待 如果 JavaScript 线程长时间地占用了主线程 那么渲染层面的更新就不得不长时间地等待 界面长时间不更新 会导致页面响应度
  • React的State Hook用法详解

    一 State Hook是啥 State Hook 就是指 useState 这个特殊函数 让你不用编写class 就可以使用state特性 换言之就是让 函数组件 拥有 state 特性 对数据进行动态更新 二 class中的state
  • ant design pro v5 配置拦截器,header

    ant design pro v5 配置拦截器 header 1 资料文档 https umijs org zh CN plugins plugin request requestinterceptors 2 编写app tsx 我这里是自
  • 配置使用Eslint的时候 版本错误 "eslint": "5.6.0" a different version of eslint was detected higher up in the tr

    1 如果你也遇到下面的问题 你可以 按照命令行提示的那样 下面这四步完成的一般就可以了 但是不排除你在运行的时候忘记下载某些依赖 1 删除 package lock json 不是package json 你可以选择 yarn lock 或
  • react 使用 scss

    react 使用 scss 日常记录开发中遇到的坑 1 使用 npm install sass loader node sass S 进行安装 2 在页面中直接使用 有时候可以 有时候不行 原因 我个人觉得安装的两个插件本版兼容问题 nod
  • 三、react中类组件和函数组件

    简介 本篇我们只要介绍react中类组件与函数组件两种组件的写法 两者的优缺点 同时对在我们的项目开发中该使用类组件还是函数组件进行思考分析 废话不多说进入正题 类组件 设计思路 类组件时面向对象编程的思想 在其中我们去设计类组件时使用st
  • 关于Vue.js和React.js,听听国外的开发者怎么说?

    VueJS 与 ReactJS 到底怎么样如何 听听别人怎么说 使用所有新的库和框架 很难跟上所有这些库和框架 也就是说 这就需要您决定哪些是值得花时间的 让我们看看人们说什么 和Vue JS一起工作是很愉快的 我发现学习曲线很浅 然而 这
  • Ant Design Pro从零到一(认识AntD)

    废话 在我们第一次接触AntD的时候 会遇到两个东西 一个是Ant Design 另一个是Ant Design Pro 他们的官网分别是 Ant Design 一套企业级 UI 设计语言和 React 组件库 Ant Design Pro
  • React的超详细讲解

    React React的重点 webpack webpack 是一个现代 JavaScript 应用程序的静态模块打包器 module bundler 当 webpack 处理应用程序时 它会递归地构建一个依赖关系图 dependency
  • react和react jsx基础

    本文是个人学习笔记 例子都是来自React Native官网 之前不是做前端的 没有使用过react 要学习react native做混合开发 react 包括react jsx还是得补补 react和react jsx react是一个j
  • react 上传文件(多选)功能入的坑

    1 这里报错是因为onChange的this指向不对 解决方法在constructor中写 this onChange this onChange bind this 或者在绑定事件的时候写 onChange this onChange b
  • 【react】回调函数形式的ref

    回调函数有3个特点 是我定义的函数 我没有调用这个函数 在我没有调用的情况下这个函数自己执行了 ref绑定一个箭头函数作为回调函数 可以输出以下这段看下 ref绑定的箭头函数是会自己执行的 class Demo extends React
  • umi 后台管理demo

    umi 后台管理demo umi react ts dva antd egg 有待优化 简单的前后端管理demo 接口提供增删查改 前端也有相应功能 github代码 https github com huiBuiling ql admin
  • 值得收藏的UmiJS 教程

    点击上方关注 前端技术江湖 一起学习 天天进步 前言 网上的umi教程是真的少 很多人都只写了一点点 很多水文 所以打算自己写一篇 自己搭建umi 并封装了一下常用的功能 并用到公司实际项目中 umi介绍 Umi 是什么 Umi 中文可发音
  • reactJS 干货(reactjs 史上最详细的解析干货)

    一 State和 Props state是状态机 应该包括 那些可能被组件的事件处理器改变并触发用户界面更新的数据 譬如需要对用户输入 服务器请求或者时间变化等作出响应 不应该包括 计算所得数据 React组件 在render 里使用pro
  • 自定义hooks

    自定义传参hooks 把大多数的通用代码 或者props 抽成一个hooks 用hooks实现上下文 就不用再一一传参了 实现原理 主要是通过createContext useContext 生产 消费者模式 用于大量props一层一层传参

随机推荐

  • 解析WINDOWS中的DLL文件---经典DLL解读

    在Windows世界中 有无数块活动的大陆 它们都有一个共同的名字 动态链接库 现在就走进这些神奇的活动大陆 找出它们隐藏已久的秘密吧 初窥门径 Windows的基石 随便打开一个系统目录 一眼望去就能看到很多扩展名DLL的文件 这些就是经
  • 基金股票投资调研

    1 本金不多 是买股票还是买基金 十万以上的话 可以买股票 十万以下 买基金 好股票股价都很贵 买一手一两万太正常 你不到十万块 买不了几手 做到行业分散很难 股票需要资金量 而基金往往一块钱就能买 2 可转债与股票 股票 1手 即是100
  • FbxSDK官网文档阅读总结

    FbxSDK官网文档地址 传送门 原文 Normally an FBX application needs only one SDK manager object Most FBX applications need only one sc
  • mysql ---- 全文索引:中文语义分词检索

    转 https www cnblogs com huanzi qch p 15238604 html 介绍 通常情况下 全文检索引擎我们一般会用ES组件 传送门 SpringBoot系列 ElasticSearch 但不是所有业务都有那么大
  • OpenCV Gabor滤波器实现纹理提取与缺陷分析

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 一 Gabor滤波器介绍 Gabor滤波器是OpenCV中非常强大一种滤波器 广泛应用在纹理分割 对象检测 图像分维 文档分析 边缘检测 生物特征识别 图像编码与内容描述
  • C语言中的“三体”大佬们知道是什么吗? —— 结构体、枚举、联合体

    目录 前言 结构体 基本概念 结构体类型的声明 结构的声明 特殊的声明 结构的自引用 结构体变量的定义和初始化 结构体的对齐规则 为什么要内存对齐 修改默认对齐数 修改默认对齐数的预处理命令 实际例子 结构体传参 结构体实现位段 位段的填充
  • 渗透技巧——手动判断注入点(思维导图)

    在渗透测试过程中 在web存在较复杂的情况下需要有针对性的先进性手动测试是否存在注入点 总结如下手动测试思维导图 如下思维导图针对大多数有注入点的场景
  • 【java实现二叉树的各种遍历方式】

    二叉树的各种遍历方式 通过递归方式 可实现二叉树的层级遍历 先序 中序 后序等遍历方式 package com ykq import java util ArrayList import java util List author ykq
  • nvidia 显卡驱动

    nvidia settings ERROR NVIDIA driver is not loaded ERROR Unable to load info from any available system 然后查看 home drive 发现
  • spring-boot项目打包时候出现boot-inf文件夹的问题

    前言 这问题不是我发现的 刚好碰到而已 下面几位同仁都遇到过 spring boot子模块打包去掉BOOT INF文件夹 摘抄如下 1 spring boot maven打包 一般pom xml文件里会加
  • C/C++ 子类调用父类中的私有成员变量(对比JAVA)

    C Person中age为私有的 通过Persron getAge 可以获取age的值 include
  • PWM信号通过功率三极管控制电机,PWM波形失真问题。

    电路图如下所示 上图M 为5V电源 电机与二极管D3并联 在调试过程中 PB6输入频率为15 268KHz 占空比36 17 为PWM信号 既周期为64uS 高电平为17uS PWM信号如下图所示 经过R12后三极管基极的波形如下图所示 高
  • 数据结构与算法之美

    当我们要去做一件事的时候 必须要问自己三个问题 是什么 什么是数据结构与算法 数据结构 就是一组数组的存储结构 算法 就是操作数据的一组方法 数据结构是为算法服务的 算法要作用于特定的数据结构之上 为什么需要数据结构与算法 来谈谈应用层面的
  • 深入理解java IO

    本文的目录视图如下 Java IO概要 a Java IO中常用的类 b Java流类的类结构图 1 流的概念和作用 2 Java IO所采用的模型 3 IO流的分类 4 Java IO流对象 1 输入字节流InputStream 2 输出
  • undefined、undeclared、NaN、Null区别

    undefined的是声明了但是没有赋值 javascript在使用该变量是不会报错 undeclared 是未声明也未赋值的变量 JavaScript访问会报错 Null 只有一个null undefined 是由null派生处理的 因此
  • 2021,VR又要热了?

    配图来自Canva可画 业界普遍认可 VR AR是5G时代最核心的应用场景 也将会是智能手机之后的下一代主流移动计算平台 2021年开年伊始 VR产业传来喜讯 1月4日 爱奇艺孵化的VR厂商 爱奇艺智能宣布完成由屹唐长厚基金 清新资本共同投
  • python代码:基于DDPG(深度确定性梯度策略)算法的售电公司竞价策略研究

    python代码 基于DDPG 深度确定性梯度策略 算法的售电公司竞价策略研究 关键词 DDPG 算法 深度强化学习 电力市场 发电商 竞价 说明文档 完美复现英文文档 可找我看文档 主要内容 代码主要研究的是多个售电公司的竞标以及报价策略
  • 大数据平台测试-git常用操作(白盒测试基础)

    一 前言 学习Git是非常有价值和重要的 无论是一个个人开发者还是在团队中进行协作开发 以下是一些学习Git的原因 版本控制 Git是目前最流行的分布式版本控制系统 可以帮助你跟踪 管理和控制代码的版本 你可以轻松地回退到先前的版本 比较不
  • Python数据处理之导入导出excel数据

    Python的一大应用就是数据分析了 而数据分析中 经常碰到需要处理Excel数据的情况 这里做一个Python处理Excel数据的总结 基本受用大部分情况 相信以后用Python处理Excel数据不再是难事儿 xlwt库将数据导入Exce
  • React实现页面之间的跳转

    目录 1 需求说明 2 技术实现 3 代码展示 4 效果展示 5 参考文献 1 需求说明 目前在学习过程中需要结合自己之前复现的论文算法弄一个人工智能安全平台系统 其中需要做一个前端展示我们的模块 我们点击模块就可以跳转到相应的界面 因为之