简单的实现页面点击切换(非路由方式)

2023-10-26

//html
import React, { Component } from "react";

class index extends Component {
  constructor(props) {
    super(props);
    this.state = {
      curr: "zero",
      username: "",
      password: "",
      info: localStorage.getItem("info"),
    };
  }
  //页面跳转
  changeClass(curr) {
    this.setState({
      curr,
    });
  }
  //表单页面保存
  handleCun() {
    const { username, password } = this.state;
    localStorage.setItem("info", username);
    this.changeClass("second");
    this.setState({
    	info: localStorage.getItem("info"),
    })
  }
  //表单页面取消
  handleQu() {
    localStorage.clear();
    this.changeClass("zero");
  }
  //赋值
  handleChange(e) {
    let name = e.target.name;
    let value = e.target.value;
    this.setState({
      [name]: value,
    });
    console.log(e.target.value);
  }
  //创建简历
  handleBao() {
    this.changeClass("first");
  }
  //表单页面确认提交信息
  handleQueren() {
    this.changeClass("third");
  }
  //返回第一页
  Fan() {
    this.changeClass("zero");
  }
  //修改表单
  handleXiu() {
    this.changeClass("first");
  }
  render() {
    const { username, password, curr, info } = this.state;
    return (
      <div>
        <div className={`box ${curr}`}>
          <div className="cont1">
            <h2>模块一</h2>
            <button
              type="button"
              onClick={() => {
                this.handleBao();
              }}
            >
              我要创建简历
            </button>
          </div>
          <div className="cont2">
            <h2>模块二</h2>
            <input
              type="text"
              placeholder="请输入帐号"
              name="username"
              value={username}
              onChange={(e) => this.handleChange(e)}
            />
            <input
              type="password"
              placeholder="请输入密码"
              name="password"
              value={password}
              onChange={(e) => this.handleChange(e)}
            />
            <button
              type="button"
              onClick={() => {
                this.handleCun();
              }}
            >
              保存
            </button>
            <button
              type="button"
              onClick={() => {
                this.handleQu();
              }}
            >
              取消
            </button>
          </div>
          <div className="cont3">
            <h2>模块三</h2>
            {info}
            <button
              onClick={() => {
                this.handleXiu();
              }}
            >
              修改
            </button>
            <button
              onClick={() => {
                this.handleQueren();
              }}
            >
              确认
            </button>
          </div>
          <div className="cont4">
            <h2>模块四</h2>
            <p>创建成功</p>
            <button
              type="button"
              onClick={() => {
                this.Fan();
              }}
            >
              返回
            </button>
          </div>
        </div>
      </div>
    );
  }
}

export default index;
//css
.box {
  h2 {
    font-size: 30px;
    font-weight: 800;
  }
  .cont1 {
    display: none;
  }
  .cont2 {
    display: none;
  }
  .cont3 {
    display: none;
  }
  .cont4 {
    display: none;
  }
  &.zero .cont1 {
    display: block;
  }
  &.first .cont2 {
    display: block;
  }
  &.second .cont3 {
    display: block;
  }
  &.third .cont4 {
    display: block;
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单的实现页面点击切换(非路由方式) 的相关文章

  • Ubuntu16.04 64位下安装VMware Tools过程

    因为在虚拟机下安装Ubuntu16 04 64位时无法进入全屏模式 采用另外一种方法解决了 但是还是想安装一下VMware Tools 防止以后出现相关问题 好啦 下面进入正题 1 在虚拟机下会看到安装 VMware Tools 单击安装

随机推荐

  • C# 各种符号用法

    参考 C 的7种用法 c 软泡芙的博客 CSDN博客 C 问号操作符详解 知乎 的7种用法 可空类型修饰符 int i num null 表示可空的整型 DateTime time dateTime null 表示可空的时间 三元 运算符
  • join(long millis)意思?join()作用

    join 作用 class JoinThread implements Runnable public void run for int i 0 i lt 100 i System out println Thread currentThr
  • FT2232作为JTAG烧录器的使用步骤详解

    FT2232作为JTAG烧录器的使用步骤详解 FT2232作为JTAG烧录器的使用步骤详解 配置OpenOCD环境 已经配置好的可以跳过 步骤 1 安装 FT2232HL 芯片的驱动 安装文件为 CDM21228 Setup exe 步骤
  • unity AR3D物体识别

    上篇讲到了各种AR插件的一些对比 因为上个项目需求用到3D物体追踪 所以使用了EasyAR和Vuforia两种进行了测试对比 因为如果需要AR识别 都需要有识别点 大致都是基于物体材质纹理来进行识别 1 先讲一下EasyAR的3D物体识别
  • 【百问网】物联网项目学习总结

    初步实现项目 项目程序流程图 TCP连接流程 模式1 站点模式 写代码去实现了这个TCP的连接流程 我们的思路就是 首先直接操作ESP8266 进行功能验证 ST Link Debugger 点击Settings 勾选Reset and R
  • 远程访问数据库出错的解决办法

    案例 在aws服务器中的项目访问在华为云中的测试服务器的数据库 报错 Access denied for user root ec2 XXX XXX XXX XXX cn north 1 compute amazonaws com cn u
  • Linux指令系统文件复制到U盘

    Linux指令系统文件复制到U盘 文章目录 Linux指令系统文件复制到U盘 1 建立U盘挂载点 2 查看U盘所在分区 3 查看U盘类型 4 挂载U盘 5 复制文件 6 移除U盘 1 建立U盘挂载点 在挂载点处建立文件夹 mkdir 路径
  • 【Java面试题汇总】设计模式篇(2023版)

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 设计模式 牛客面试题 目录 谈谈你对设计模式的理解 谈谈你对单例模式的理解 手写一
  • [17]AWK记录、字段、模式、跨平台移植及正则表达式

    一 记录与字段 1 记录分隔符 默认行输入和输出的分隔符都是回车 保存在RS和ORS内部变量中 变量 0 awk每次一行取得整条记录 0随之改变 同时内部变量NF 字段的总数 也随之变化 变量NR 每条记录的行号 处理完一行将会加1 所以全
  • InnoDB undo log解析(二)

    在 上一篇中已经介绍了InnoDB undo log的组织结构 并通过一个示例并结合InnoSQL来分析insert undo log记录格式 本篇中介绍update undo log的记录格式 update undo log有以下三种类型
  • cocoeval 解析

    1 COCO目标检测比赛中的模型评价指标介绍 dulingwen的博客 CSDN博客 2 COCO目标检测测评指标 简书 1 Params类 对于COCO格式的数据检测 我们主要分为不同的IoU阈值 不同的面积范围 单张图片的最大检测数量
  • PAT 5 猴子吃桃问题(递归)

    猴子吃桃问题 15 分 一只猴子第一天摘下若干个桃子 当即吃了一半 还不过瘾 又多吃了一个 第二天早上又将剩下的桃子吃掉一半 又多吃了一个 以后每天早上都吃了前一天剩下的一半加一个 到第N天早上想再吃时 见只剩下一个桃子了 问 第一天共摘了
  • Nuxt 项目引入外部Js的正确姿势 ,问题描述:打包构建之后引入的外部 js失效,构建之后的 .nuxt 文件夹下的js文件中,引入 js 的script标签凭空消失!

    首先先说我遇到的问题描述 我是用vue nuxt项目 项目中使用了阿里播放器 于是我在vue页面中直接引入了阿里播放器的 css和js文件 然后运行没有任何问题 如下图所示 但是 当我打包以后 发现这个页面竟然报错 我打开 打包好的 nux
  • Debugger problem "The breakpoint will not currently be hit. No symbols have been loaded for this doc...

    网上收集到的相关解决办法 1st Start debugging Now select Debug gt Windows gt Modules In the modules window taht now appears check wha
  • 解决Windows缺少d3dcompiler_37.dll文件

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个d3dcompiler 37 dll文件进行安装
  • VSCode选择远程服务器的虚拟环境

    方式一 选择服务器虚拟环境conda Ctrl Shift P 选择需要使用的虚拟环境即可 方式二 选择Terminal 点击 通过命令行切换即可 参考 Work on Python in VSCode remotely over ssh
  • 不就是G2O嘛

    从零开始一起学习SLAM 理解图优化 一步步带你看懂g2o代码 SLAM的后端一般分为两种处理方法 一种是以扩展卡尔曼滤波 EKF 为代表的滤波方法 一种是以图优化为代表的非线性优化方法 不过 目前SLAM研究的主流热点几乎都是基于图优化的
  • jmeter压测实战包括cpu性能检测

    1 录制测试计划 1 打开jmeter 创建测试计划 线程组 sampler HTTP请求 监听器 查看结果树 聚合报告 2 服务器参数端口做了个参数化管理 3 对于请求数据也做一个参数化管理 4 最后运用参数化思想传参 HTTP请求 填写
  • Java程序设计——注解(Java高级应用)

    目录 一 基本注解 1 Override注解 2 Deprecated注解 3 SuppressWarnings注解 4 SafeVarargs注解 5 FunctionalInterface注解 二 定义注解 三 使用注解 四 元注解 1
  • 简单的实现页面点击切换(非路由方式)

    html import React Component from react class index extends Component constructor props super props this state curr zero