034_受控组件
只要改变了就调用onchange 所指向的回调
受控组件
页面中所有输入类的DOM
这种输入类的DOM,随着你的输入,人家就会把东西维护到状态里面去
等你需要用的时候,直接从装填里面去取
就像Vue里面的双向数据绑定
在这里面,你不用写ref
而非受控里面,你有几个输入项,就要写几个ref
而官方说 勿过度使用 Refs
代码
``javascript
//创建组件
class Login extends React.Component {
    // 不能违背原则
    // 最好不要在状态还么有初始化的时候就往里面放东西
    // 这里定义一下
    state = {
        username: '',// 用户名
        password:''// 密码
    }
    // 保存用户名到状态中
    saveUsername = (event)=>{
        console.log('@',event.target.value)
        this.setState({
            username:event.target.value
        })
    }
    // 保存密码到状态中
    savePassword = (event)=>{
        console.log('@',event.target.value)
        this.setState({
            password:event.target.value
        })
    }
    handleSubmit = () => {
        event.preventDefault();// 阻止表单提交
        const {username, password} = this.state;
        // alert(你输入的用户名是:${username.value},你输入的密码是:${password.value});
        // 这回就不用
        alert(你输入的用户名是:${username},你输入的密码是:${password}`);
};
render() {
    return (
        <form action="http://www.baidu.com" onSubmit={this.handleSubmit}>
            用户名: <input onChange={this.saveUsername} ref={c => this.username = c} type="text" name="username"/>
            密码: <input  onChange={this.savePassword} ref={c => this.password = c} type="password" name="password"/>
            <button>登录</button>
        </form>
    )
}
}
//渲染组件到页面
ReactDOM.render(