REACT 前端界面提交
在react项目中安装代理中间件
setupProxy.js文件
const { createProxyMiddleware: proxy } = require('http-proxy-middleware') module.exports = app => {
app.use('/v1', proxy({
target: 'http://localhost:8080',
changeOrigin: true,
pathRewrite: {}
}))
}
App.jsx文件
import React, { Component } from 'react'
import Adduser from './pages/Adduser' export default class App extends Component { render() {
return (
<div>
<Adduser />
</div>
)
} }
index.js文件
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App'; ReactDOM.render(
<App />,
document.getElementById('root')
);
Adduser.jsx文件
import React, { Component } from 'react'
import '../assets/css/bootstrap.min.css'
import axios from 'axios' export default class Adduser extends Component { constructor(props) {
super(props);
this.state = {
// 用户数据源
userinfo: {
username: '',
password: '',
sex: '男',
hobbies: [],
intro: ''
}
} // 建议以后写在这样,性能更好一次
this.setValue = this.setValue.bind(this)
this.dopost = this.dopost.bind(this)
} // 默认处理的string类型 checkbox数组
setValue(evt) {
let value = evt.target.value
let name = evt.target.name
let type = evt.target.type
if ('checkbox' === type) {
// hobbies 数组
let tmpValue = this.state.userinfo[name]
tmpValue.push(value)
this.setState(state => state.userinfo[name] = tmpValue)
} else {
this.setState(state => state.userinfo[name] = value)
}
} // 表单提交
async dopost() {
let userinfo = this.state.userinfo
let data = await axios.post('/v1/api/users',userinfo)
console.log(data)
} render() {
let { userinfo } = this.state
return (
<div className="container">
<form>
<div className="form-group">
<label>账号:
<input type="text" name="username" className="form-control" value={userinfo.username} onChange={this.setValue} />
</label>
</div>
<div className="form-group">
<label>密码:
<input type="text" name="password" className="form-control" value={userinfo.password} onChange={this.setValue} />
</label>
</div>
<div className="form-group">
<div>性别:</div>
<div className="radio">
<label>
<input type="radio" name="sex" value='男' checked={userinfo.sex === '男' ? true : false} onChange={this.setValue} />
男
</label>
</div>
<div className="radio">
<label>
<input type="radio" name="sex" value='女' checked={userinfo.sex === '女' ? true : false} onChange={this.setValue} />
女
</label>
</div>
</div>
<div className="form-group">
<div>爱好:</div>
<div className="checkbox">
<label>
<input type="checkbox" name="hobbies" value="写代码" onChange={this.setValue} />写代码
</label>
</div>
<div className="checkbox">
<label>
<input type="checkbox" name="hobbies" value="看书" onChange={this.setValue} />看书
</label>
</div>
<div className="checkbox">
<label>
<input type="checkbox" name="hobbies" value="交友" onChange={this.setValue} />交友
</label>
</div>
</div>
<div className="form-group">
<div>简介</div>
<textarea className="form-control" name="intro" rows="3" value={userinfo.intro} onChange={this.setValue}></textarea>
</div> <button type="button" onClick={this.dopost} className="btn btn-success">添加用户</button>
</form> </div>
)
}
}
REACT 前端界面提交的更多相关文章
- 基于SqlSugar的开发框架循序渐进介绍(15)-- 整合代码生成工具进行前端界面的生成
在前面随笔<基于SqlSugar的开发框架循序渐进介绍(12)-- 拆分页面模块内容为组件,实现分而治之的处理>中我们已经介绍过,对于相关的业务表的界面代码,我们已经尽可能把不同的业务逻辑 ...
- Semantic UI – 完全语义化的前端界面开发框架
Semantic UI 是一个 UI 库,使前端开发更简单,更容易学习.Semantic UI 介绍了许多界面元素.在大多数情况下,只有你需要的元素建立一个自定义的构建可能是最好的. UI 组件分为四 ...
- <经验杂谈>前端form提交导出数据
之前在做列表的是总会遇到一些导出的功能,而在做导出的时候总是习惯于用get的方法将参数放在url上,这样一来就会有很多的弊端,一是url的参数长度有限,遇到有的参数很长的时候就会报错,二是也不太安全. ...
- servlet自动获取前端页面提交数据
servlet自动获取前端页面jsp提交数据 以下是本人在学习过程中,因前端页面提交参数过多,后台servlet封装实体类过于麻烦而写的一个工具类,应用于jsp/servlet数据提交后,基于MVC+ ...
- 从前端界面开发谈微信小程序体验
本文由云+社区发表 作者介绍:练小习,2011年加入搜狐,负责搜狐相册的产品策划与前端开发.2015年后加入腾讯 ISUX (社交用户体验设计部),目前主要负责腾讯云的UI开发工作,专注于人机交互,有 ...
- 瑞联科技:Pwp3框架 调用存储过程返还数据集合 到前端界面展示
一:代码结构: 1:Js 代码结构 2:Java 代码结构 二:前端界面展示效果 为了数据安全性:界面数据做了处理 三:全端代码展示 1:main.vop <html> <head& ...
- 【连载】Bootstrap开发漂亮的前端界面之插件开发
相关文章: 1.<教你用Bootstrap开发漂亮的前端界面> 2.<Bootstrap开发漂亮的前端界面之实现原理> 3.<Bootstrap开发漂亮的前端界面之自定义 ...
- 【连载】Bootstrap开发漂亮的前端界面之自定义右键菜单
连载: 1<教你用Bootstrap开发漂亮的前端界面> 2.<Bootstrap开发漂亮的前端界面之实现原理> 网页中的自定义右键菜单越来越普遍,自定义右键菜单可以增强用户体 ...
- Django中前端界面实现级联查询
Django前端界面实现级联查询 一.前端界面中 <span scope="col" colspan="6"> 院系:<select id=& ...
- Oracle number类型前端界面和数据库查询不一致 number精度问题
[发现问题] [问题分析] Ⅰ.在前端界面查询,发现了库存中存在这样的数量值.但是在数据库中查询时显示正常.即6.999999999999997 为 7. Ⅱ.至于这种小数产生,我以为是oracle存 ...
随机推荐
- Mui 消息推送
一.push通过H5+实现 简单实现方式:通过轮询服务器是否有新消息推送过来 mui.plusReady(function() {plus.navigator.closeSplashscreen(); ...
- 链栈的实现 C语言/C++
堆栈的链式存储C/C++实现--链栈 与顺序栈相比,链栈的优点在于不存在栈满上溢的问题.链栈通常使用单链表实现,进栈.出栈操作就是在单链表表头的 插入.删除操作.用单链表实现链栈时,使用不带头结点的单 ...
- 阿里云峰会 | 阿里云CDN六大边缘安全能力,全力助推政企数字化转型
6月9日,2020年阿里云线上峰会召开.阿里云智能总裁张建锋认为,数字化已经成为中国经济的主要驱动力,疫情让政府.企业都认识到数字化的迫切性.在峰会上,阿里云CDN正式对外发布基于CDN构建的六大边缘 ...
- 云原生应用实现规范 - 初识 Operator
简介: 本文我们将首先了解到 Operator 是什么,之后逐步了解到 Operator 的生态建设,Operator 的关键组件及其基本的工作原理,下面让我们来一探究竟吧. 作者 | 匡大虎.阚俊宝 ...
- MaxCompute Tunnel 技术原理及开发实战
简介: MaxCompute(原名ODPS)是一种快速.完全托管的EB级数据仓库解决方案, 致力于批量结构化数据的存储和计算,为用户提供数据仓库的解决方案及分析建模服务.Tunnel是MaxCompu ...
- 如何在golang代码里面解析容器镜像
简介:容器镜像在我们日常的开发工作中占据着极其重要的位置.通常情况下我们是将应用程序打包到容器镜像并上传到镜像仓库中,在生产环境将其拉取下来.然后用 docker/containerd 等容器运行时 ...
- IDA动态调试快捷键
1. F2下断点2. F7进入函数,F8单步调试,F9跳到下一个断点,F2下断点,G调到函数地址3. N重名4. g跳到地址和函数名5. u取消把函数汇编变成机器码6. c就是把机器码变成汇编7. F ...
- 指定Task任务顺序执行
经常听到说线程池这个东西,凭印象写了个这么简单的例子. CusTRun方法要不要await,取决于要不要作为后台任务.任务可指定数量,线程参数可共享全,顺序可控,可继续改进. using System ...
- 一个在线下载地图XYZ瓦片的网站实现
1. 什么是XYZ瓦片 XYZ瓦片是一种在线地图数据格式,常见的地图底图如Google.OpenStreetMap 等互联网的瓦片地图服务,都是XYZ瓦片,严格来说是ZXY规范的地图瓦片 ZXY规范的 ...
- 程序是怎样跑起来的_第一章-对程序员来说CPU是什么
通过对第一章的学习,我了解了大体上CPU可以说是电脑的"大脑",即中央处理器.从功能来看可以分为寄存器,控制器,运算器和时钟.在这四个部分中,寄存器是最值得程序员注意的.总的来说, ...