• 【JAVASCRIPT】React 学习


    摘要

    实现一个登录的react 组件, 包含组件更新、ajax 交互、渲染新组建。

    代码

    <head>
    	<meta charset="utf-8">
    	<title></title>
        <script src="../build/react.js"></script>
        <script src="../build/react-dom.js"></script>
        <script src="../build/browser.min.js"></script>
        <script src="../build/jquery.min.js"></script>
    </head>
    <body>
    <div id="loginForm"></div>
    <script type="text/babel">
    
    var LoginForm = React.createClass({
    	getInitialState: function(){
    		return {
    			username: '',
    			password: '',
    			info: ''
    		};
    	},
    	handlerNameChange: function(event) {
    		var name = event.target.value;
    		// 验证name 有效性
    		if (name.length < 2) {
    			this.setState({name: name, info: '名称长度过短'});
    		}else {
    			this.setState({name: name, info: ''});
    		}
    	},
    	handlePasswordChange: function(event) {
    		var password = event.target.value;
    		// 验证password是否有效
    		if (password.length < 2) {
    			this.setState({password: password, info: '密码长度过短'});
    		}else {
    			this.setState({password: password, info: ''});
    		}
    	},
    	handlerLogin: function(event) {
    		var that = this;
    		var name = this.state.name;
    		var password = this.state.password;
    		if ((name.length < 2) || (password.length < 2)) {
    			that.setState({info: '名称/密码长度过短'});
    		}else {
    			// 模拟发送ajax 请求
    			$.ajax({
    				url: 'https://api.github.com/search/repositories?q=javascript&sort=stars',
    				type: 'get',
    			}).done(function(data) {
    				var incomplete_results = data.incomplete_results;
    				if(!incomplete_results) {
    					// that.setState({info: '登录成功'});
    					ReactDOM.render(<SuccessForm/>, document.getElementById('loginForm'));
    				}else {
    					that.setState({info: '登录失败,请检查名称or密码是否正确'});
    				}
    			});
    		}
    	},
    	render: function(){
    		return (
    			<div>
    				<div>姓名:<input type="text"  value={this.state.name} onChange={this.handlerNameChange}/></div>
    				<div>密码:<input type="password" value={this.state.password} onChange={this.handlePasswordChange} /></div>
    				<div><span>{this.state.info}</span><button onClick={this.handlerLogin} type="button">登录</button></div>
    			</div>
    		);
    	}
    });
    
    ReactDOM.render(<LoginForm/>, document.getElementById('loginForm'));
    
    
    var SuccessForm = React.createClass({
    	render: function() {
    		return (
    			<div>Success!</div>
    		);
    	}
    });
    </script>
    
    
    计划、执行、每天高效的活着学着
  • 相关阅读:
    证券市场主体
    证券投资基金
    1.监控系统的重要性
    1.五种世界顶级思维-20190303
    【四校联考】【比赛题解】FJ NOIP 四校联考 2017 Round 7
    【学长出题】【比赛题解】17-09-29
    【codeforces】【比赛题解】#854 CF Round #433 (Div.2)
    【codeforces】【比赛题解】#851 CF Round #432 (Div.2)
    【算法学习】三分法
    【codeforces】【比赛题解】#849 CF Round #431 (Div.2)
  • 原文地址:https://www.cnblogs.com/huxiaoyun90/p/5657937.html
Copyright © 2020-2023  润新知