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存 ...
随机推荐
- clearValidate()和resetFields()表单校验的用法和区别
目标:实现表单重置和清除验证 1.整个表单的校验移除 <Form ref="form" rule={this.rules}> <FormItem prop=&qu ...
- 如何把jQuery对象转成DOM对象?OR DOM对象转化成jQuery对象
如何把jQuery对象转成DOM对象? 参考:https://www.imooc.com/code/8110 利用数组下标的方式读取到jQuery中的DOM对象 <div>元素一</ ...
- 力扣907(java)-子数组的最小值之和(中等)
题目: 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组. 由于答案可能很大,因此 返回答案模 10^9 + 7 . 示例 1: 输入:arr = ...
- 你不知道的 HTTPS 压测
简介:随着互联网安全规范的普及,使用 HTTPS 技术进行通信加密,实现网站和 APP 的可信访问,已经成为公认的安全标准.本文将介绍针对 HTTPS 协议做压力测试的关注点,以及使用 PTS 做 ...
- 基于 EventBridge 构建数据库应用集成
简介:本文重点介绍 EventBridge 的新特性:数据库 Sink 事件目标. 作者:赵海 引言 事件总线 EventBridge 是阿里云提供的一款无服务器事件总线服务,支持将阿里云服务.自定 ...
- 链路分析 K.O “五大经典问题”
简介:链路分析是基于已存储的全量链路明细数据,自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求. 作者:涯海 链路追踪的 "第三种玩法" 提起链路追踪,大 ...
- [GF] 与 Laravel 设计相近的 Golang 框架 GoFrame
在 GoFrame (gogf/gf) 框架中有明确的代码分层设计,分别是 api, service, dao, model. model (结构模型)一般由工具自动生成,用于定义数据结构,只可被 m ...
- [Linux] 日志管理: rsyslogd 服务 (检测启动/自启动/日志位置)
查看 rsyslogd 服务是否已启动: ps aux | grep rsyslogd 查看 rsyslogd 是否设置了自启动: systemctl status rsyslog 或者 servic ...
- [FAQ] 腾讯企业邮箱成员的名字如何多次更改 ?
可以通过给成员的邮箱增加别名,先点击成员信息最右侧的 "编辑",在编辑页面顶部的 "更多操作" 这个按钮中,比较隐蔽. Refer:腾讯邮箱成员名字更改 Lin ...
- NopCommerce 多数据库方案
本文转自:http://www.cnblogs.com/YUTOUYUWEI/p/5538200.html 有时候一个项目需要连接多个数据库,以实现不同数据库的数据在同个项目的共享. 如果已经安装了n ...