如何使用react框架进行两个html页面的切换?

如何使用react框架进行两个html页面的切换?

  • 项目背景
  • 首先是古老的做法
    • login.html
    • index.html
  • 正文->react框架如何设置两个页面的跳转?
    • 配置react框架的环境
    • react框架如何实现两个页面的跳转?

项目背景

古老的html页面跳转的做法无法在react框架中直接适配,所以非常有必要从新开始学习一下react框架是如何进行两个页面的跳转的.

首先是古老的做法

先温习一下

login.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>登录页面</title><style>body {display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;background-image: url('./src/picture/2.png');/* 替换为你的图片路径 */background-size: cover;/* 背景图片覆盖整个页面 */}.login-container {text-align: center;background: rgba(255, 255, 255, 0.8);/* 半透明白色背景 */padding: 20px;border-radius: 10px;}.form-row {margin-bottom: 10px;}label,input {display: inline-block;vertical-align: middle;margin: 5px 0;}label {width: 80px;}input {width: 200px;}</style><script>function checkLogin() {var username = document.getElementById("username").value;var password = document.getElementById("password").value;if (username === "我是用户名(用户名填这里)" && password === "我是密码(密码填这里)") {window.location.href = "index.html";} else {alert("用户名或密码不正确,请重试。");}}</script>
</head><body><div class="login-container"><h1>登录前的页面</h1><form><div class="form-row"><label for="username">用户名:</label><input type="text" id="username" name="username" required></div><div class="form-row"><label for="password">密码:</label><input type="password" id="password" name="password" required></div><button type="button" onclick="checkLogin()">登录</button></form></div>
</body></html>

下面这里很重要,只要用户名和密码都对了,就直接跳转了!!!

if (username === "我是用户名(用户名填这里)" && password === "我是密码(密码填这里)") {window.location.href = "index.html";
} else {alert("用户名或密码不正确,请重试。");
}

index.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><link rel="icon" type="image/svg+xml" href="/vite.svg" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>登录后的界面</title><style>body {margin: 0;overflow: hidden;}#myButton {position: absolute;top: 10px;left: 10px;z-index: 1;}#myButton2 {position: absolute;top: 10px;left: 80px;z-index: 1;}#myButton3 {position: absolute;top: 10px;left: 160px;z-index: 1;}#myButton4 {position: absolute;top: 80px;left: 10px;z-index: 1;}#demo-simple-select-label {position: absolute;top: 50px;z-index: 1;}#demo-simple-select {position: absolute;top: 50px;left: 40px;z-index: 1;}/* 可以在这里定义 CSS 样式,也可以使用内联样式,下面这个是文本 */#highlighted-text0 {position: absolute;top: 30px;/* 设置文本颜色为红色 */color: red;/* 设置字体大小 */font-size: 24px;/* 设置字体加粗 */font-weight: bold;/*位于顶部*/z-index: 999;/*左移*/left: 430px;}#highlighted-text1 {position: absolute;top: 60px;/* 设置文本颜色为红色 */color: red;/* 设置字体大小 */font-size: 24px;/* 设置字体加粗 */font-weight: bold;/*位于顶部*/z-index: 999;/*左移*/left: 430px;}/* 隐藏下拉框内容 */.dropdown-content {position: absolute;display: none;position: absolute;background-color: #f9f9f9;min-width: 160px;box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);z-index: 1;}/* 下拉框按钮样式 */.dropdown button {top: 60px;position: absolute;z-index: 1;padding: 10px;font-size: 16px;}/* 下拉框选项样式 */.dropdown-content a {position: absolute;z-index: 1;display: block;padding: 12px 16px;text-decoration: none;color: #333;}/* 鼠标悬停时改变选项背景颜色 */.dropdown-content a:hover {position: absolute;z-index: 1;background-color: #ddd;}#mySelector {position: absolute;top: 40px;left: 10px;z-index: 1;}/* 自定义选择器的样式 */.custom-select {padding: 5px;/* 调整选择器的内边距以容纳图标 */}</style></head><body><select id="mySelector" class="custom-select"><option value="option0">Please select the attachment</option><option value="option1">附件 1</option><option value="option2">附件 2</option><option value="option3">附件 3</option><option value="option4">附件 4</option><option value="option5">附件 5</option><option value="option6">附件 6(待添加)</option><option value="option7">附件 7(待添加)</option><option value="option8">附件 8(待添加)</option><option value="option9">附件 9(待添加)</option><option value="option10">附件 10(待添加)</option><option value="option11">附件 11(待添加)</option><option value="option12">附件 12(待添加)</option><option value="option13">附件 13(待添加)</option><option value="option100">瑶瑶领先的mate100!</option></select><button id="myButton">一键复原</button><button id="myButton2">Un Check</button><button id="myButton3">Copmpare</button><button id="myButton4">Dental arch line</button><div id="highlighted-text0">请耐心等待...</div><div id="root"></div><script type="module" src="/src/main.jsx"></script></body></html>

正文->react框架如何设置两个页面的跳转?

配置react框架的环境

(其实之前一直想写一篇如何配置react框架+three.js的环境的文章,但是想想自己大概率不会做太长时间的前端吧,后来就没写,没想到从12月1号一直到了第二年的1月26号)
其实配置react框架+three.js的环境非常简单,下面跟上步伐一起配置:

    1. 创建一个你自己的文件夹(方便管理),名字你随便起,我就叫react-test-three了
mkdir react-test-three
cd react-test-three
    1. npm init vite@latest
      然后你按照下面的图片进行选择:
      在这里插入图片描述
      在这里插入图片描述
  • 3.进入项目文件夹
    在这里插入图片描述
    执行以下ls,你就可以看到你的项目文件夹了,然后
    在这里插入图片描述
    1. 初始化项目,请依次执行
npm install
npm install three
npm run dev

至此,react框架+three.js就配置好了!!!
在这里插入图片描述
非常nice! 难道不是吗?说实话,偶尔搞搞前端还真不错!

react框架如何实现两个页面的跳转?

待补充…

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

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

相关文章

代码随想录算法刷题训练营day16

代码随想录算法刷题训练营day16&#xff1a;LeetCode(104)二叉树的最大深度 、LeetCode(559)n叉树的最大深度、LeetCode(111)二叉树的最小深度、LeetCode(222)完全二叉树的节点个数 LeetCode(104)二叉树的最大深度 题目 代码 /*** Definition for a binary tree node.* publ…

NC开发客户端(前端)连接启动失败can‘t connect to server, please wait

效果图 解决方法 IP地址和端口要对应 1-IP地址中间启动&#xff0c;肯定是这个127.0.0.1 2-端口号&#xff0c;要对应中间件启动在控制台输出的端口 或者是在home目录-》bin-》sysConfig.bat这里面的服务器&#xff0c; 里面可以看到对应启动ip地址和端口

一天吃透面试八股文

内容摘自我的学习网站&#xff1a;topjavaer.cn 分享50道Java并发高频面试题。 线程池 线程池&#xff1a;一个管理线程的池子。 为什么平时都是使用线程池创建线程&#xff0c;直接new一个线程不好吗&#xff1f; 嗯&#xff0c;手动创建线程有两个缺点 不受控风险频繁创…

include文件包含

include 文件包含利用日志文件什么是日志文件 之所以会burp抓包上传就可以成功的原因&#xff0c;是因为burp可以绕过url编码&#xff0c;导致写入日志文件中的代码没有进行编码&#xff0c;可以直接解析成php文件 声明&#xff1a;其中图片并非本人实操&#xff0c;而是直接截…

java生成验证码工具类,java生成图片验证码

java生成验证码工具类&#xff0c;java生成图片验证码 java生成验证码工具类&#xff0c;java生成图片验证码&#xff0c;java生成彩色图片验证码&#xff0c;带干扰线验证码。 调用结果&#xff1a; 工具类调用&#xff1a; GetMapping("/validateCode")public vo…

Qt项目文件以及对象树

"在哪里走散&#xff0c;你都会找到我~" 前篇&#xff0c;我们仅仅对Qt创建了第一个简单的项目。相比于使用其他IDE创建工程项目&#xff0c;Qt会为自动创建诸如&#xff1a;.pro、.h\.cpp、.iu等文件&#xff0c;这些文件到底是什么&#xff1f;我们在使用Qt时 应该…

机器人顶会IROS,ICRA论文模板下载及投稿须知,以及机器人各大会议查询

一、背景 机器人方向&#xff0c;不止期刊TRO&#xff0c;TASE&#xff0c;RAM&#xff0c;RAL上的成果被认可&#xff0c;机器人顶会上的成果也是非常好的&#xff0c;一般来说一篇机器人顶会顶一篇trans。当决定要写一篇IROS论文时&#xff0c;结果IROS论文模板和投稿须知找…

Spring boot + Azure OpenAI 服务 1.使用 GPT-35-Turbo

Azure OpenAI 服务使用 GPT-35-Turbo 先决条件 maven 注意 beta.6 版本 <dependency><groupId>com.azure</groupId><artifactId>azure-ai-openai</artifactId><version>1.0.0-beta.6</version></dependency>问答工具类 pack…

从零学习Hession RPC

为什么学习Hessian RPC&#xff1f; 存粹的RPC&#xff0c;只解决PRC的四个核心问题&#xff08;1.网络通信2.协议 3.序列化 4.代理&#xff09;Java写的HessianRPC落伍了&#xff0c;但是它的序列化方式还保存着&#xff0c;被Dubbo(Hessian Lite)使用。 被落伍&#xff0c;只…

微信小程序(十三)生命周期-更新应用提醒

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.onLaunch用法 2.onShow用法 3.onHide用法 4.应用更新API的调用模板 源码&#xff1a; App({//小程序初始化时触发&#xff0c;全局只触发一次onLaunch(option) {//可以获取场景值和启动参数&#xff0c;eg.opt…

字符串相关的函数和内存块相关函数

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

手势识别MATLAB代码

手势识别是智能设备常用的需求, 下面我们用MATLAB来识别手部的形态: 主程序main.m clc;clear all;close all;%清除命令行和窗口 imimread(DSC05815.JPG); [skin,bwycbcr,w,h] hand_segmentation(im); im1bwycbcr; % se strel(ball,[1 1 1;1 1 1;1 1 1]); im1 imdilate(im…