React实现简单登录

一        实现效果(样式是之前设置的)

二        具体实现代码

2.1        Login.js

import {useNavigate} from "react-router-dom";
import React from "react";
// import './style2.css'

function Login(){
    const navigate=useNavigate()
    function handLogin(){
        navigate("/home",{replace:true})
    }
    return(
        <div id="Log">
                <p>登录页面</p>
                <span>用户名:</span><input type={'text'} name={'姓名'} placeholder={"姓名"} pattern="^[\u4e00-\u9fa5]+$" required/><br/>
                <span>登录密码:</span><input type={'password'} name={'密码'} placeholder={"密码"} required/><br/>
                <span>邮箱:</span><input type={'email'} name={'邮箱'} placeholder={"邮箱"} required/><br/>
                <span>年龄:</span><input type={'number'} name={'年龄'} placeholder={"年龄"} required/><br/>
                <span>电话号码</span><input type={'text'} name={'电话号码'} placeholder={"电话号码"} required/><br/>
                <button onClick={handLogin}>登录</button>
                <button>重置</button>
                <ul>
                     <li>
                        <a href={'#'}>没有账号?</a>
                        <a href={'#'}>注册?</a>
                        <a href={'#'}>忘记密码?</a>
                    </li>
                </ul>
        </div>
    )
}
export default Login











2.2        Home.js

function Home(){
    return(
        <h1>首页中心页面</h1>
    )
}

export default  Home

三        代码解析

 const navigate=useNavigate()
    function handLogin(){
        navigate("/home",{replace:true})
    }

这段代码是定义了一个`navigate`常量,它是通过调用`useNavigate` hook来创建的。`useNavigate` hook是React Router提供的一个函数,用于在React组件中导航到不同的路径。

然后,代码定义了一个`handLogin`函数来处理登录操作。在这个函数内部,它调用了`navigate`函数,并传入了两个参数:路径`"/home"`和一个配置对象`{replace:true}`。这个配置对象的作用是将新的路径加入到历史记录中,而不是在历史记录中创建一个新的条目。

最后,当调用`handLogin`函数时,它会将用户导航到路径`"/home"`,并且会使用配置对象中指定的方式进行导航。

关于const

在React中,const是用来声明一个常量的关键字。常量是一个具有固定值的标识符,它的值在声明后不能被修改。

在React中,使用const关键字可以创建一个不可变的变量,这意味着变量的值在声明后不能被重新赋值。这对于定义一些固定的值、配置信息、常用的函数等非易变的内容非常有用。

navigate("/home",{replace:true}

`navigate("/home", {replace: true})` 是使用 `react-router-dom` 包中的 `useNavigate` hook 进行页面导航的一种方式。

在这个例子中,`navigate` 函数将会根据指定的路径进行页面导航。 `"/home"` 是目标页面的路径。`{replace: true}` 是一个可选的配置对象,用于指定导航行为。`replace` 设置为 `true` 表示使用替换导航,即将当前的页面替换为目标页面,而不是添加一个新的历史记录。

使用 `replace` 导航相当于使用 `history.replace` 进行页面导航,这意味着在导航后,用户无法通过浏览器的后退按钮返回到上一个页面,而是直接跳转到目标页面。

需要注意的是:`useNavigate` hook 只能在 `react-router-dom` 的 `v6` 版本或更高版本中使用。如果项目中使用的是 `v5` 版本或更低版本的 `react-router-dom`,则需要使用 `useHistory` hook 来实现类似的导航功能。

例子中的 `handLogin` 函数使用 `navigate` 函数进行页面导航,当登录操作完成后,通过 `replace` 导航到目标页面 `/home`。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据仓库与联机分析处理】数据仓库

目录 一、数据仓库的概念 二、数据仓库与操作性数据库的区别 三、发展前期 四、数据仓库的系统结构 五、建模划分 六、主要案例 一、数据仓库的概念 目前很难给数据仓库&#xff08;Data Warehouse&#xff09;一个严格的定义&#xff0c;不准确地说&#xff0c;数据仓库…

用c语言以升序顺序显示15个单词,从键盘上输入15个单词,将其以升序顺序显示出来。(排序方法不限,单词不得雷同,而且单词须是正确的单词)

用c语言以升序顺序显示15个单词,从键盘上输入15个单词&#xff0c;将其以升序顺序显示出来。&#xff08;排序方法不限&#xff0c;单词不得雷同,而且单词须是正确的单词&#xff09; 以下是一个使用C语言实现的示例程序&#xff0c;可以从键盘上输入15个单词&#xff0c;并将它…

ES(Elasticsearch)的基本使用

一、常见的NoSQL解决方案 1、redis Redis是一个基于内存的 key-value 结构数据库。Redis是一款采用key-value数据存储格式的内存级NoSQL数据库&#xff0c;重点关注数据存储格式&#xff0c;是key-value格式&#xff0c;也就是键值对的存储形式。与MySQL数据库不同&#xff0…

python下载wheel并安装

一、查看当前python 版本兼容信息 pip debug --verbose C:\python\37>pip debug --verbose WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command…

甜美温柔有气质的衬衫穿搭

衬衫可以说是一年四季都很好穿的时尚单品了 这次上新怎么少的了百搭经典的衬衫呢&#xff1f; 实用耐穿&#xff0c;怎么穿都好看 温柔气质淑女范儿&#xff0c;韩系氛围感拉满 翻领设计版型很正&#xff0c;穿在身上不会有松垮感 棉质面料。上身很舒适透气 可以搭配一个…

macbook录屏快捷键大全,教你快速录制视频

“有人知道macbook电脑有录屏快捷键吗&#xff0c;现在录屏的速度太慢了&#xff0c;每次打开都要浪费不少时间&#xff0c;要是有录屏快捷键&#xff0c;应该会快很多&#xff0c;有哪位大佬知道吗&#xff1f;教教我&#xff01;” 无论是在工作还是生活中&#xff0c;电脑已…

AI 编写完整工程代码:自然语言控制,AI 驱动开发 | 开源日报 No.135

gpt-engineer-org/gpt-engineer Stars: 47.6k License: MIT GPT-Engineer&#xff0c;AI 帮你写代码&#xff01; 工作流程&#xff1a; 通过自然语言指定软件AI 编写和执行代码引导 AI 优化改进 核心优势&#xff1a; 可以编辑 preprompts 文件来指定 AI 代理的 “身份”…

【云原生】Docker学习笔记

安装docker 系统信息&#xff1a; passnightpassnight-s600:/etc/apt/trusted.gpg.d$ cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.1 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.1 LTS (Jammy Jellyfish)" VERSION_COD…

云计算:OpenStack 分布式架构管理FLAT网络(单控制节点与多计算节点)

目录 一、实验 1.环境 2.控制节点创建网络 3.控制节点创建规格 4.控制节点新增安全组入口规则 5.控制节点创建实例 二、问题 1.FLAT网络底层如何实现 2.无法SSH 云主机实例 一、实验 1.环境 (1) 主机 表1 主机 主机架构IP备注controller控制节点192.168.204.210已部…

听GPT 讲Rust源代码--compiler(5)

File: rust/compiler/rustc_resolve/src/rustdoc.rs rust/compiler/rustc_resolve/src/rustdoc.rs是Rust编译器中解析文档注释的模块。该模块处理Rust源代码中的文档注释&#xff0c;提取出有用的信息&#xff0c;例如函数、结构体、枚举的名称、说明、参数、返回值等。它的主要…

视频号频繁显眼!是资本的运作?还是互联网新风口到来?

视频号这个平台出现了&#xff0c;特别是在最近存在感越来越强&#xff0c;而且已经有些人开始在视频号当中购物了&#xff0c;这也就意味着&#xff0c;视频号电商出现了&#xff0c;腾讯也开始搞电商了。 很多人可能对视频号做电商这个事情呢&#xff0c;抱有一定的迟疑态度&…

[Android]RadioButton控件

RadioButton控件 RadioButton控件是单选按钮控件&#xff0c;它继承自Button控件&#xff0c;可以直接使用Button控件支持的各种属性和方法。 与普通按钮不同的是&#xff0c;RadioButton控件多了一个可以选中的功能&#xff0c;能额外指定一个android&#xff1a;checked属性…

MySQL之四大引擎、建库建表以及账号管理

目录 一. 数据库存储引擎 1.1 存储引擎查看 1.2 InnoDB 1.3 MyISAM 1.4 MEMORY 1.5 ARCHIVE 二. 数据库管理 2.1 元数据库简介 2.2 元数据库分类 2.3 数据库的增删改查及使用&#xff1a; 2.4 MySQL库的权限 三. 数据表管理 3.1 三大范式 3.2 基本数据类型 3.2.1 优化原则 3…

将DOM结构转换成图片保存至本地或保存至剪切板

在新业务需求中&#xff0c;碰到这样一个场景&#xff0c;需要将后端返回的表格数据&#xff0c;保存至本地或者保存至剪切板&#xff0c;直接发送给用户使用。 1. 将内容转换成图片并保存至本地 1.1 交互效果 如图所示&#xff0c;想要点击复制按钮后&#xff0c;将下面这个…

echarts点击柱子、线节点、横坐标标签

echarts点击柱子、线节点、横坐标标签 x轴标签要为标签文字添加点击事件&#xff0c;必须先在xAxis里设置响应事件 xAxis: {triggerEvent: true, },然后直接监听 thisChart.on("click" ,function (params) {console.log(params) });通过params.componentSubType来…

JNPF低代码体验情况

目录 可视化拖拽搭建 平台功能特征 01、高性能、高拓展 02、满足通用场景 03、私有化部署 04、多种数据库 05、项目部署简单 06、平台全源码合作 最后 分享下引迈信息的 JNPF 吧&#xff0c;面向研发人员开发使用、100%源码、前后端分离的低代码&#xff1a; JNPF主打…

鸿鹄电子招投标系统:源码级别解析电子招投标的精髓

招投标管理系统是一个集门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理于一体的综合性应用平台。它适用于招标代理、政府采购、企业采购和工程交易等业务的企业&#xff0c;旨在提高项目管理的效率和质量。该系…

芯课堂 | MCU之EXT

概述 本文将介绍一下华芯微特MCU的嵌套向量中断控制器&#xff08;NVIC&#xff09;与外部中断/事件控制器&#xff08;EXTI&#xff09;的使用方法等。 01.嵌套向量中断控制器&#xff08;NVIC&#xff09; NVIC的全称是Nested vectoredinterrupt controller&#xff0c;即嵌…

Navicat Premium各版本安装指南

Navicat Premium下载链接 https://pan.baidu.com/s/1rHvboQJ7ec4f8MUi-6kZww?pwd0531 1.鼠标右击【Navicat Premium 16(64bit)】压缩包&#xff08;win11及以上系统需先选择“显示更多选项”&#xff09;选择【解压到 Navicat Premium 16(64bit)】。 2.打开解压后的文件夹&a…

AI写作生成器,这4款你要试试

随着人工智能技术的不断发展&#xff0c;AI写作生成器逐渐成为了学术界和商业领域的热门工具。它们能够帮助用户快速生成高质量的论文、文章和其他文本内容。在众多的AI写作生成器中&#xff0c;有一些不常见但却非常优秀的中文软件&#xff0c;今天我们就来推荐这4款你一定要试…