react 手把手写一个登录界面,还能从中能学到什么?

2023-11-12

需求

作为一个前端码农,对于登录页面和相关业务已经熟烂于心。今天我们一起从登录出发,看我们能学到什么?

提示:下面采用 react+typescirpt+scss 环境书写

结果截图如下
在这里插入图片描述

原始做法

从react视角出发,我们可能会在pages文件夹下创建如下结构:
在这里插入图片描述
sin-in.component.tsx

import React from 'react'

import './sign-in.style.scss'
export default class SignIn extends React.Component<any, any>{
   
    constructor(props: any) {
   
        super(props);
        this.state = {
   
            email: '',
            password: ''
        }
        this.handleInput = this.handleInput.bind(this);
        this.handleSubmit = this.handleSubmit.bind(this)

    }
    handleInput(e: React.FormEvent) {
   
        const {
    value = '', name = '' } = e.target as any;
        this.setState({
   
            [name]: value
        })
    }
    handleSubmit(e: React.FormEvent) {
   
        e.preventDefault();

        console.log(this.state);
    }
    render() {
   
        const {
    email, password } = this.state;
        return (
            <div className="sign-in">
                <h2>I already have an account</h2>
                <span>Sign in with your email and passowrd</span>

                <form onSubmit={
   this.handleSubmit}>
               	<div className='group'>
                  <input 
                  		className='form-input' 
                   		type="email"
                        name='email'
                        value={
   email}
                        required
                        onChange={
   this.handleInput}
                 />
                  <label
                  	className={
   `${
     value.length?'shrink':''} form-input-label	
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react 手把手写一个登录界面,还能从中能学到什么? 的相关文章

  • React中的“计算属性”

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

    React 你的第一个组件 React React是前端三大主流框架之一 你可以在React里传递多种类型的参数 如声明代码 帮助你渲染出UI 也可以是静态的HTML DOM元素 也可以传递动态变量 甚至是可交互的应用组件 安装react框
  • react项目按需加载报错 .libraryName is not a valid Plugin property

    babel presets react app plugins import libraryName antd style true 原配置如上会报错 libraryName is not a valid Plugin property g
  • React重点知识拓展,含Hooks、路由懒加载等

    第7章 React扩展 一 setState 1 setState更新状态的2种写法 setState stateChange callback 对象式的setState stateChange为状态改变的对象 该对象可以体现出状态的更改
  • React Router 路由守卫

    React Router 路由守卫 组件内路由守卫 1 下面是使用高阶组件实现路由守卫的示例代码 import React from react import Route Redirect from react router dom con
  • 对 React Hook的闭包陷阱的理解,有哪些解决方案?

    hooks中 奇怪 其实符合逻辑 的 闭包陷阱 的场景 同时 在许多 react hooks 的文章里 也能看到 useRef 的身影 那么为什么使用 useRef 又能摆脱 这个 闭包陷阱 搞清楚这些问题 将能较大的提升对 react h
  • 如何在 Ubuntu 20.04 上使用 React 前端设置 Ruby on Rails v7 项目

    作者选择了电子前沿基金会接受捐赠作为为捐款而写程序 介绍 红宝石 on Rails是一个流行的服务器端 Web 应用程序框架 它为当今网络上存在的许多流行应用程序提供支持 例如GitHub Basecamp 声云 Airbnb and Tw
  • Ionic3开发教程 - 开发(2)

    Ionic3开发系列教程Ionic3开发教程 环境准备 1 Ionic3开发教程 开发 2 Ionic3开发教程 发布Android版本 3 Ionic3开发教程 发布IOS版本 4 Ionic3开发教程 更新 5 本文中介绍的Ionic3
  • Ant Design Pro 从零到一教程

    说在最前面的话 可是能全网唯一适合小白的antd教程 因为我找了接近一个周的教程 无论是视频 博客等等都没有比较完整的教程 所以才说这可能是唯一全网适合小白教程 文章末有相关学习链接 适用人群 喜欢看文字或者代码学习的人 学习的人掌握基本的
  • 三分钟实现一个react-router-dom5.0的路由拦截(导航守卫)

    不同于vue 通过在路由里设置meta元字符实现路由拦截 在使用 Vue 框架提供了路由守卫功能 用来在进入某个路有前进行一些校验工作 如果校验失败 就跳转到 404 或者登陆页面 比如 Vue 中的 beforeEnter 函数 rout
  • React路由懒加载的实现

    React lazy 通过引入lazy Suspense两个方法实现路由懒加载 首先 我们需要在组件中引入lazy Suspense这两个方法 然后我们需要通过Suspense组件 包裹着注册路由 import React Componen
  • react组件状态同步-状态提升

    假设定义组件TemperatureInputSon import React from react class TemperatureInputSon extends React Component constructor props su
  • Ant Design Pro从零到一(认识AntD)

    废话 在我们第一次接触AntD的时候 会遇到两个东西 一个是Ant Design 另一个是Ant Design Pro 他们的官网分别是 Ant Design 一套企业级 UI 设计语言和 React 组件库 Ant Design Pro
  • React(一):React的设计哲学 - 简单之美

    React 一 React的设计哲学 简单之美 React 二 React开发神器Webpack React 三 理解JSX和组件 React 四 虚拟DOM Diff算法解析 React 五 使用Flux搭建React应用程序架构 Rea
  • React之state、hooks性能分析

    目录 一 state 1 为什么使用setState 2 setState异步更新 3 如何获取异步的结果 4 setState一定是异步吗 5 源码分析 6 数据的合并 7 多个state的合并 二 为什么需要Hook 三 Class组件
  • React class组件、react-hook函数组件分别实现五子棋

    react class类组件 react hook函数组件分别实现五子棋 前言 使用create react app脚手架简单搭建 不用安装其他依赖 纯 js css实现 这里就只是简单的说明目录结构和思路 具体的代码实现请转到 Githu
  • 如何替换对象的key值

    发生的场景 现在用antd组件库 有些组件想渲染数据的话 我要根据他们官网给的字段名称对应起来才能渲染上去 这个是复选框选中 保存的时候 字段需要按照后台约定的传入code value 1 常规循环遍历 大招来了 哈哈哈 才疏学浅 我觉得是
  • error Missing “key“ prop for element in array react/jsx-key

    react遇到一个奇怪的问题 error Missing key prop for element in array react jsx key 检查了jsx中使用map的 都定义了key div otherList map item an
  • react之封装有无Token(路由权限控制)的高阶组件

    TOC 前景 有些路由页面内的内容信息比较敏感 如果用户没有经过登录获取到有效Token 是没有权限跳转的 根据Token的有 无控制当前路由是否可以跳转就是路由的权限控制 技术方案 实现步骤 1 在 components 目录中 创建 A
  • 如何提高React组件的渲染效率的?在React中如何避免不必要的render?

    面试官 说说你是如何提高组件的渲染效率的 在React中如何避免不必要的render 一 是什么 react 基于虚拟 DOM 和高效 Diff 算法的完美配合 实现了对 DOM 最小粒度的更新 大多数情况下 React 对 DOM 的渲染

随机推荐

  • 兼莱宝分享:适合上班族空闲时间做的三种靠谱副业?

    只讲干货 不来虚的 作为一个有着4年自由写作经验的人 做过的兼职非常多 什么给人家做海报 写商业文案 做民宿体验师等等 都有尝试过 每一份工作的收入都是不一样的 今天只分享3种靠谱的副业 都是我自己做过并且有收益的副业 一 自媒体写作 很多
  • 每日学习:Idea和Eclipse中的一些常用快捷键

    1 删除光标所在行代码 idea快捷键 Ctrl X eclipse快捷键 Ctrl D 2 复制光标所在行代码 或者鼠标选中的代码 idea快捷键 Ctrl D eclipse快捷键 Ctrl Alt 上下键 3 切换代码大小写 idea
  • Nacos 中下线服务时报错:The Raft Group [naming_instance_metadata] did not find the Leader node;解决

    问题描述 因为某些特殊原因需要把nacos迁移到另一个版本的nacos 我迁的是nacos2 0 2版本 迁移完成后 Nacos注册中心有一个微服务有多台实例的时候 点击一个实例下线操作 报错 caused errCode 500 errM
  • easyExcel文件上传与下载

    目录 1 导入POM依赖 2 模板文件 3 实体类 4 前端页面 5 模板文件上传 Controller 6 文件下载 Controller 7 导出效果 1 导入POM依赖
  • linux常用命令总结

    find查找命令 find 位置 name 搜索的相关内容 eg find name aaa 查看当前位置以aaa开头的文件 查找文件得内容 grep r 关键字 路径 例如 grep r test data reports grep 查找
  • 如果代码已关联git仓库,但是想将代码提交到新的仓库,应该如何做?

    如果你已经将代码关联到了一个 Git 仓库 但是希望将代码提交到另一个远程仓库 可以按照以下步骤操作 打开命令行终端并导航到你的本地代码仓库 确保你当前在正确的分支上 你可以通过运行 git branch 命令来查看当前所在分支 如果需要切
  • 快速解决Android中的selinux权限问题

    关于selinux的详细资料 请查阅http blog csdn net innost article details 19299937 在Android开发的过程中 遇到关于selinux相关的东西 当时还一下子看不懂 现在好像有点眉目了
  • UI特效应用Mask剪裁

    公司的特效做UI特效的时候 总喜欢一些奇奇怪怪的shader 做滚动窗口的时候需要用Mask把多余位置遮住 如果里面有特效的话会像这样透出 修改shader 的代码 使其支持支持stencil 可以实现mask遮盖 加入下面的两段代码 St
  • 自学C之递归理解

    一 理解概念 C语言允许一个函数调用自身 这种过程被称为递归 Recursion 程序使用递归处理特殊的问题 如阶乘 Ackermann函数 反序等等 实际上 如果不考虑运行时内存的开消 任何使用赋值语句 if else和while结构的函
  • spring在多线程下如何进行事物管理

    一 以下情况spring的事务管理会失效 private方法 final方法 static方法 绕过代理对象直接调用添加了事务管理的注解的方法时 new UserService save 事务管理将无法生效 spring的声明式事务是基于动
  • vue中实现简易的输入框的模糊搜索,并渲染在页面。(附上代码示例)

    1 举个例子 用户有4个数据 我们想在输入框搜索后 能让数据从原来的4条数据变成只显示出和我们输入相关的数据 即实现如下图这样的效果 2 思路上怎么实现呢 首先第一步我们应该想到用v model 拿到用户的输入 就像这样 这里通过keyWo
  • GoLang之使用sync.Cond

    文章目录 GoLang之使用sync Cond 1 Cond结构体 1 1 Cond结构体 1 2Broadcast方法 1 3Signal方法 1 4Wait方法 2 NewCond函数 3 介绍 3 1Cond结构体 1 Cond结构体
  • 单独安装想要的office_彻底删除office办公软件全家桶的简介方法

    起因 先安装了office2016专业增强版 再安装viso2016出现提示 搜集了相关资料 可以通俗的理解为 已经安装了离线客户端版的office后 不能再安装在线版viso 于是又百度去一些解决办法 说是 把office2016与vis
  • 学习态度记录JRebel本地验证

    学习态度记录JRebel本地验证 网上有两种方式 1 直接使用其他同学提供好的远程服务器验证地址 可自行搜索 2 设置本地反向代理 激活JRebel ps 我的IDEA升级到2023 1 2后无法使用第一种方式了 搜了半天网上都是基于win
  • ami bios源代码开启 调试日志 使用uart0调试 bios源代码

    修改文件 AmiCRBPkg CRB Crb sdl 文件 TOKEN Name DEBUG MODE Value 0 Value 1 TokenType Boolean TargetMAK Yes End
  • vmware 10.03不能设定共享文件夹的解决办法

    问题 背景 win7 64下安装的VMware WorkStation 10 02 里面安装了虚拟机OpenSUSE 13 1 在设定共享目录前处于 挂起 状态 目标 为虚拟机OpenSUSE 13 1设定一个共享目录 让OpenSUSE可
  • 关于机械键盘的一些知识

    本文从5个方面简单介绍机械键盘与普通键盘的区别 1 什么是机械键盘 2 机械键盘的手感 3 机械键盘的产地 4 机械键盘的轴 5 键帽印刷技术 当然机械键盘的知识远不止这些 如果朋友们还有不明白的问题请向掌柜咨询 我会全力为您解答 1 什么
  • ROS 与Anaconda 发生冲突的解决方案

    背景 ubuntu16 04 之前装有anaconda3 配有许多环境 最近要用ros 安装完毕 catkin make时报错如下 home usr anaconda3 lib libpng16 so 16 对 inflateValidat
  • 针对linux下Nginx同域名/IP 部署多个Vue前端项目,Vue打包及Nginx配置注意事项。

    需要在Vue打包的时候配置不同的项目名称 1 config下的index js文件 assetsPublicPath参数 2 index html文件增加meta 3 路由下的index js文件 以上配置后打包上传到要部署的服务器对应文件
  • react 手把手写一个登录界面,还能从中能学到什么?

    文章目录 需求 原始做法 组件化后 总结 需求 作为一个前端码农 对于登录页面和相关业务已经熟烂于心 今天我们一起从登录出发 看我们能学到什么 提示 下面采用 react typescirpt scss 环境书写 结果截图如下 原始做法 从