在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 前端界面提交的更多相关文章

  1. 基于SqlSugar的开发框架循序渐进介绍(15)-- 整合代码生成工具进行前端界面的生成

    在前面随笔<基于SqlSugar的开发框架循序渐进介绍(12)-- 拆分页面模块内容为组件,实现分而治之的处理>中我们已经介绍过,对于相关的业务表的界面代码,我们已经尽可能把不同的业务逻辑 ...

  2. Semantic UI – 完全语义化的前端界面开发框架

    Semantic UI 是一个 UI 库,使前端开发更简单,更容易学习.Semantic UI 介绍了许多界面元素.在大多数情况下,只有你需要的元素建立一个自定义的构建可能是最好的. UI 组件分为四 ...

  3. <经验杂谈>前端form提交导出数据

    之前在做列表的是总会遇到一些导出的功能,而在做导出的时候总是习惯于用get的方法将参数放在url上,这样一来就会有很多的弊端,一是url的参数长度有限,遇到有的参数很长的时候就会报错,二是也不太安全. ...

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

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

  5. 从前端界面开发谈微信小程序体验

    本文由云+社区发表 作者介绍:练小习,2011年加入搜狐,负责搜狐相册的产品策划与前端开发.2015年后加入腾讯 ISUX (社交用户体验设计部),目前主要负责腾讯云的UI开发工作,专注于人机交互,有 ...

  6. 瑞联科技:Pwp3框架 调用存储过程返还数据集合 到前端界面展示

    一:代码结构: 1:Js 代码结构 2:Java 代码结构 二:前端界面展示效果 为了数据安全性:界面数据做了处理 三:全端代码展示 1:main.vop <html> <head& ...

  7. 【连载】Bootstrap开发漂亮的前端界面之插件开发

    相关文章: 1.<教你用Bootstrap开发漂亮的前端界面> 2.<Bootstrap开发漂亮的前端界面之实现原理> 3.<Bootstrap开发漂亮的前端界面之自定义 ...

  8. 【连载】Bootstrap开发漂亮的前端界面之自定义右键菜单

    连载: 1<教你用Bootstrap开发漂亮的前端界面> 2.<Bootstrap开发漂亮的前端界面之实现原理> 网页中的自定义右键菜单越来越普遍,自定义右键菜单可以增强用户体 ...

  9. Django中前端界面实现级联查询

    Django前端界面实现级联查询 一.前端界面中 <span scope="col" colspan="6"> 院系:<select id=& ...

  10. Oracle number类型前端界面和数据库查询不一致 number精度问题

    [发现问题] [问题分析] Ⅰ.在前端界面查询,发现了库存中存在这样的数量值.但是在数据库中查询时显示正常.即6.999999999999997 为 7. Ⅱ.至于这种小数产生,我以为是oracle存 ...

随机推荐

  1. 国内chatGPT中文版网站有哪些?国内人工智能百花齐放!该如何选择?

    人工智能技术在中国的快速发展和普及,使得国内的人工智能产业日益壮大.在这些领域中,自然语言处理技术和聊天机器人已经取得了显著的进展.ChatGPT作为一种基于深度学习的聊天机器人模型,在国内得到了广泛 ...

  2. 力扣569(MySQL)-员工薪水中位数(困难)

    题目: 写一个SQL查询,找出每个公司的工资中位数,以任意顺序返回结果表.查询结果个数如下所示. 输出结果如下:  解题思路: 中位数:位于集合正中间的元素.当数据总书为奇数时,最中间的数就是中位数, ...

  3. 力扣68(java)-文本左右对齐(困难)

    题目: 给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本. 你应该使用 "贪心算法" ...

  4. 力扣43(java)-字符串相乘(中等)

    题目: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 注意:不能使用任何内置的 BigInteger 库或直接将输入 ...

  5. 钉钉宜搭亮相“第二届ISIG中国产业智能大会”:云钉低代码,构建企业酷应用

    ​简介:低代码年度行业盛会!钉钉宜搭创始人叶周全受邀出席并发表主题演讲. 12月8日,由中国电子技术标准化研究院指导,RPA中国.LowCode低码时代.信创中国联合举办的"第二届ISIG中 ...

  6. dotnet 使用 CsWin32 库简化 Win32 函数调用逻辑

    很多开发者,包括开发老司机们,在碰到需要调用 Win32 函数时,都有一个困扰,那就是我应该如何去调用.有两个主要的选项,第一就是自己写 PInvoke 代码,第二就是使用其他大佬给许多 Win32 ...

  7. dotnet C# 使用 Vortice 支持 Direct2D1 离屏渲染

    本文告诉大家如何使用 Vortice 进行 D2D 的离屏渲染功能,本文将在一个纯控制台无窗口的应用下,使用 Direct2D1 进行离屏绘制,将绘制结果保存为本地图片文件 本文属于使用 Vortic ...

  8. .Net 8.0 下的新RPC,IceRPC之"请求"生命线意义非凡

    作者引言 很高兴啊,我们来到了IceRPC之"请求"生命线意义非凡,号称"死亡时间"的追命线,颤抖吧! "请求"生命线之意义非凡 本文将深入 ...

  9. ORACLE查询表的DML最后时间和操作记录条数

    ORACLE查询表的DML最后时间和操作记录条数 其中user代表当前用户的.dba代表的是有dba可以看到的相关表. select * from all_tab_modifications; sel ...

  10. Unity Visual Scripting 使用随记

    1.Wait Until并不会再执行前面的代码,而是反复执行获取bool变量的代码:需自己拆出来写. 2.yield return null对应Wait For Next Frame,多用这个避免协程 ...