zoukankan      html  css  js  c++  java
  • 多个表单提交的优化方案

    1.问题

    import React from 'react';
    import './index.scss';
    
    
    class Login extends React.Component {
    	constructor(props) {
    		super(props);
    		this.state = {
    			username: '',
    			password: ''
    		}
    	}
    
    	//用户名发生改变
    	onUserNameChange(e) {
    		console.log(e.target.value);
    		this.setState({
    			username: e.target.value
    		})
    	}
    
    	//密码发生改变
    	onPwdChange(e) {
    		console.log(e.target.value);
    		this.setState({
    			password: e.target.value
    		})
    	}
    
    	render() {
    		return (
    			<div className="col-md-4 col-md-offset-4">
    				<div className="panel panel-default login-panel">
    					<div className="panel-heading">欢迎登录MMALL后台管理系统</div>
    					<div className="panel-body">
    						<form>
    							<div className="form-group">
    								<input type="text" className="form-control" placeholder="请输入用户名"
    											 onChange={e => this.onUserNameChange(e)}/>
    							</div>
    							<div className="form-group">
    								<input type="password" className="form-control" placeholder="请输入密码"
    											 onChange={e => this.onPwdChange(e)}/>
    							</div>
    							<button type="submit" className="btn btn-lg btn-block btn-primary">登录</button>
    						</form>
    					</div>
    				</div>
    			</div>
    
    		)
    	}
    }
    
    export default Login;
    

    2.解决:一个函数写所有的input值的提交

    import React from 'react';
    import './index.scss';
    
    
    class Login extends React.Component {
    	constructor(props) {
    		super(props);
    		this.state = {
    			username: '',
    			password: ''
    		}
    	}
    
    	//用户名发生改变
    	onInputChange(e) {
    		let inputName = e.target.name,
    			inputValue = e.target.value;
    		console.log(inputName, inputValue);
    
    		this.setState({
    			[inputName]: inputValue
    		})
    	}
    
    	render() {
    		return (
    			<div className="col-md-4 col-md-offset-4">
    				<div className="panel panel-default login-panel">
    					<div className="panel-heading">欢迎登录MMALL后台管理系统</div>
    					<div className="panel-body">
    						<form>
    							<div className="form-group">
    								<input type="text"
    											 className="form-control"
    											 placeholder="请输入用户名"
    											 name='username'
    											 onChange={e => this.onInputChange(e)}/>
    							</div>
    							<div className="form-group">
    								<input type="password"
    											 className="form-control"
    											 placeholder="请输入密码"
    											 name='password'
    											 onChange={e => this.onInputChange(e)}/>
    							</div>
    							<button type="submit" className="btn btn-lg btn-block btn-primary">登录</button>
    						</form>
    					</div>
    				</div>
    			</div>
    
    		)
    	}
    }
    
    export default Login;
    

    3.效果图

  • 相关阅读:
    Android 博客园客户端 (六) OnItemLongClickListener for Blog, News and Comment
    Android 博客园客户端 (五) 查看评论、搜索博主
    Android 博客园客户端 (四) 基本功能完成(博客列表和内容、新闻列表和内容、推荐博主)
    Android 博客园客户端 (三) 博客列表和内容显示
    Android 博客园客户端 (二) 新界面&部分功能
    Android UI 之 ListView
    Git 客户端基本配置
    Android 博客园客户端 (一) 基本界面
    性能优化的心得
    重构
  • 原文地址:https://www.cnblogs.com/ipoodle/p/9696284.html
Copyright © 2011-2022 走看看