github代码:https://github.com/zhaogaojian/jgdemo

全国肺炎,过节期间没地方去在家学习antd。

一、感觉antd pro项目太庞大了,可以学习下结构和代码风格,但不适合新手直接学习测试语法用,将从一个空白项目开始创建

1、打开umi管理后台,创建一个新项目

2、umi会自动安装各种依赖项,进行项目创建

3、项目结构如下,将仿照antd做一个登录页面

二、实现登录页面

创建了不包含antd演示的jgdemo项目,以后改使用vscode编辑代码,创建user,login目录

2、点击start可以直接启动项目

3、安装antd组件

4、antd官网

https://ant.design/docs/react/introduce-cn

蚂蚁金服的技术网站,在老家破网打开速度特别慢!

修改index.tsx代码如下

运行效果如下

5、为了省事,直接在index上做登录了,增加两个input输入框,最终tsx代码如下。

import React from 'react';

import styles from './index.css';

import { Button,Input } from 'antd';

export default function() {

return (

用户名:
密码:

登录

);

}

注意不能直接写style="width:200px",margin后面要加双引号

运行效果如下

6、网上一般的写法是使用组件,index.tsx代码继续完善,

mock下增加一个login.ts文件,模拟post数据

import { Request, Response } from 'express';

export default {

'POST /api/login': (req: Request, res: Response) => {

res.send({ status: 'ok', token: '121131323' });

},

};

提交数据代码如下

import React from 'react';

import styles from './index.css';

import Link from 'umi/link';

import { Button,Input} from 'antd';

import Password from 'antd/lib/input/Password';

class index extends React.Component{

constructor(props) {

super(props);

this.state={

userName:'test',

passWord:'123456'

}

}

state:{

userName,

passWord

}

login(){

var userName = this.state.userName;

var passWord = this.state.passWord;

const postData ={

userName:userName,

passWord:passWord

};

console.log(postData);

fetch('http://localhost:8000/api/login',{

// post提交

method:"POST",

headers:{

"Content-type":"application/json"

},

body:JSON.stringify(postData)//把提交的内容转字符串

})

.then(res =>res.json())

.then(data =>{

console.log(data)

})

};

handleUserNameChange=(event)=>{

this.setState({userName: event.target.value});

console.log(this.state.userName);

}

handlePassWordChange(event){

//this.state.passWord=event.target.value;//错误用法,这样passWord value不会更新

this.setState({passWord: event.target.value});

}

render() {

return (

用户名:
密码:

(this.login())}>登录

);

}

}

export default index;

为什么使用bind(this)

以下bind(this)讲解来自:https://blog.csdn.net/qq_34829447/article/details/81705977

1.JavaScript自身特性说明

如果传递一个函数名给一个变量,之后通过函数名()的方式进行调用,在方法内部如果使用this则this的指向会丢失。

示例代码:

首先我们创建test对象并直接调用方法 :

const test = {

name:'jack',

getName:function(){

console.log(this.name)

}

}

test.getName()

使用node test.js执行上述代码可以正常输出jack。

之后,我们对代码进行调整:

const test = {

name:'jack',

getJack:function(){

console.log(this.name)

}

}

const func = test.getJack;

func();

我们没有直接调用对象的方法,而是将方法声明给一个中间变量,之后利用中间变量()调用方法,此时this则失去指向,输出undefined,如果使用node环境执行js文件则输出node相关信息,如嵌入到html中则this指向window对象

React中的bind同上方原理一致,在JSX中传递的事件不是一个字符串,而是一个函数(如:onClick={this.handleClick}),此时onClick即是中间变量,所以处理函数中的this指向会丢失。解决这个问题就是给调用函数时bind(this),

从而使得无论事件处理函数如何传递,this指向都是当前实例化对象。

当然,如果不想使用bind(this),我们可以在声明函数时使用箭头函数将函数内容返回给一个变量,并在调用时直接使用this.变量名即可

7、在React中也可以使用getElementById方式获取数据(实际开发中尽量不要使用这种方式)。

import React from 'react';

import styles from './index.css';

import { Button,Input } from 'antd';

export const LOGIN = {

login:function(){

var userName = (document.getElementById('userName') as HTMLInputElement)?.value;

var passWord = (document.getElementById('passWord') as HTMLInputElement)?.value;

const postData ={

userName:userName,

passWord:passWord

};

fetch('http://localhost:8000/api/login',{

// post提交

method:"POST",

headers:{

"Content-type":"application/json"

},

body:JSON.stringify(postData)//把提交的内容转字符串

})

.then(res =>res.json())

.then(data =>{

console.log(data)

})

}

};

export default function() {

return (

用户名:
密码:

(LOGIN.login())}>登录

);

}

这样,点击登录按钮即可post数据到服务端后台

AntDesign(React)学习-10 Dva 与后台数据交互

明天正式在线办公没时间学习了,今天晚上再更新一篇, 代码提交一次:https://github.com/zhaogaojian/jgdemo 1.src下创建services目录 创建文件userSr ...

AntDesign(React)学习-1 创建环境

目录: AntDesign(React)学习-15 组件定义.connect.interface AntDesign(React)学习-14 使用UMI提供的antd模板 AntDesign(Reac ...

servlet自动获取前端页面提交数据

servlet自动获取前端页面jsp提交数据 以下是本人在学习过程中,因前端页面提交参数过多,后台servlet封装实体类过于麻烦而写的一个工具类,应用于jsp/servlet数据提交后,基于MVC+ ...

php里面向指定的页面提交数据

在jquery里用 load post 等等,无法得到我想要的结果!于是突然-----这几天想的东西都白想了,现在只好这样了 现在想在php里面向指定的页面提交数据,应该有,还可以有返回值 于是找了这 ...

AntDesign(React)学习-2 第一个页面

1.前面创建了第一个项目jgdemo,结构如下,使用TypeScript. 2.yarn start启动项目 3.点击GettingStarted是umi的官方网站 https://umijs.org ...

AntDesign(React)学习-5 路由及使用Layout布局

前言:学习目标实现点击登录按钮,直接进入后台布局页面,类似下面antd官网文档展示效果 ant.design访问 https://ant-design.gitee.io/components/menu ...

AntDesign(React)学习-3 React基础

前面项目已经建起来了,但是没有React基础怎么办,从头学习,这个项目使用的是基于React16.X版本的几种技术集成,那么我们就从网上找一些相关的资料进行研究,我的习惯是用到哪学到哪. 一.先看一些 ...

asp.net.mvc 中form表单提交控制器的2种方法和控制器接收页面提交数据的4种方法

MVC中表单form是怎样提交? 控制器Controller是怎样接收的? 1..cshtml 页面form提交 (1)普通方式的的提交

React后台管理系统-登录页面

登录页面

随机推荐

BZOJ 2301 【HAOI2011】 Problem b

Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

setTimeout和setinterval的区别

setTimeout("alert('久等了')",2000)是等待多长时间开始执行函数 setinterval(fn,1000)是每隔多长时间执行一次函数 setTimeout和 ...

【BZOJ】3240: [Noi2013]矩阵游戏

题意 给出\(n, m(1 \le n, m \le 10^{1000000})\),求\(f(n, m) \ \mod \ 10^9+7\) $$\begin{cases}f(1, 1) = 1 \ ...

VS2013中设置大小写的快捷键

1.我们在定义头文件时,通常需要定义: #ifndef  _MainMenu_H_#define  _MainMenu_H_ your code... #endif 我们需要将头文件名设置为大写的: ...

命令行参数解析:getopt,getopt_long

#include int getopt(int argc, char * const argv[], const char *optstring); extern c ...

OGR SQL (GEOM)

The OGRDataSource supports executing commands against a datasource via the OGRDataSource::ExecuteSQL ...

当后台获取内容有标签时如何过滤---angular

$sce controller中注入$sce服务; 假设将获取到的标签内容为result; $scope.result = $sce.trustAsHtml(result); 在html页面中则&lt ...

python常用库 - NumPy 和 sklearn入门

Numpy 和 scikit-learn 都是python常用的第三方库.numpy库可以用来存储和处理大型矩阵,并且在一定程度上弥补了python在运算效率上的不足,正是因为numpy的存在使得py ...

微软BI 之SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表

基于数据仓库上的 SSRS 报表展示,一般可以直接通过 SQL 查询,存储过程,视图或者表等多种方式将数据加载并呈现在报表中.但是如果是基于 Cube 多维数据集的数据查询,就不能再使用 SQL 的语 ...

Python_04-字符串操作

1      字符串的运算 字符串是程序中经常使用的元素,字符串的运算也很多,包括连接两个字符串,取一个字符串中的一部分,称为取子字符串,大小写转换,字符串与数值的转换等. 1.1   字符串的连接 ...

java antd实现登录,AntDesign(React)学习-4 登录页面提交数据简单实现相关推荐

  1. ssh登录远程服务器,scp从本地提交数据给远程服务器

    有时候我们需要从远程服务器提取数据或者上传数据,这时候ssh命令和scp命令就很好用了,话不多说,直接进入主题. 我现在有个压缩文件catch_oee_data.tar.gz,我需要把它从本地上传到服 ...

  2. java list数据的更新_新增页面提交数据 list页面没有更新数据

    工作共遇到一个问题 ,新增页面提交数据 list页面没有更新数据,需要手动刷新数据才会提交展示出来.在页面试过很多刷新的方法都不是很好使,求大神解答.代码如下: add:的页面代码 rel=" ...

  3. React学习:脚手架搭建、antd引入-学习笔记

    文章目录 React学习:脚手架搭建.antd引入-学习笔记 脚手架搭建 项目目录结构 antd引入 antd附加:数据可放置的三个位置 React学习:脚手架搭建.antd引入-学习笔记 脚手架搭建 ...

  4. jasig cas java示例_单点登录cas jasig学习笔记

    1 什么是单点登录 单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信 ...

  5. React学习资料+css进阶资料总结

    # Awesome ## 最佳实践 * [React + Redux 最佳实践](https://github.com/sorrycc/blog/issues/1) * [Redux 最佳实践-译]( ...

  6. react 学习路线_2018 React JS路线图

    react 学习路线 成为阅读JS开发人员的插图指南,其中包含相关课程的链接 React JS或简称React是用于开发Web应用程序的前端或GUI的领先JavaScript库之一. 在Faceboo ...

  7. Java自学需要学多久?学习路线是怎样的?别慌这里都整理好了

    学java一般要多久? 因人而异,例如一个零基础的小白自学java,每天学习8个小时来算,而且在有学习资料的基础上,每天学习,从零到找到工作,起码要半年起步,而且还要有项目经验,否则是不会有公司要你的 ...

  8. 20155307 2016-2017-2 《Java程序设计》第10周学习总结

    20155307 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程:就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据 ...

  9. 201521123038 《Java程序设计》 第十周学习总结

    201521123038 <Java程序设计> 第十周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题 ...

最新文章

  1. 批量新建文件夹并命名_dos命令实现批量新建文件夹
  2. mysql php 封装类_市面上几款常见的微信开发框架对比(PHP和JAVA)
  3. 鸟哥的Linux私房菜(基础篇)- 第十九章、认识与分析登录文件
  4. 2021-07-07
  5. ME21N增强提示警告消息
  6. Nginx静态资源压缩实战内容介绍
  7. 1042 字符统计 (20分)——16行代码满分
  8. 动态生成Repeater
  9. linux关于bashrc与profile
  10. matlab火箭升空问题,困扰火箭的三大问题终于要解决了!球迷:我都要膨胀了!...
  11. java、sqlserver复习
  12. mac安装gdb及为gdb进行代码签名
  13. 方法的重载(overload)和重写(override)的区别
  14. c语言string最大长度,求3个字符串中最长单词的长度 求救 会一个的
  15. python数据容器专题
  16. STM32基于固件库学习笔记(7)I2C通讯协议时序(GPIO模拟协议时序完成MCU对24c02读写数据)
  17. php表单验证插件下载,强力推荐10款Javascript表单验证插件
  18. 中国工商注册企业统计数据
  19. px转vw和rem配置-vue-行内样式px转vw和rem-----项目中无需出现rem单位;
  20. 人工智能在电力系统中的应用值得思考的问题

热门文章

  1. C#LeetCode刷题之#746-使用最小花费爬楼梯( Min Cost Climbing Stairs)
  2. 通用职责分配软件原则之8-中介原则
  3. clickhouse注入的利用
  4. 从头算和密度泛函理论_PHP Laravel教程–如何从头开始构建关键字密度工具
  5. gvim文本编辑器帮助_如何帮助您的文本编辑器帮助您
  6. shell编程之进阶篇一表达式
  7. clickhouse 获取几天前的日期
  8. 如何优雅的关闭 Spark Streaming 程序(2种思路)
  9. kafka 如何做到1秒发布百万级条消息?
  10. 矩阵——特征向量(Eigenvector)