react表单

非受控组件: 表单元素不受组件控制
受控组件: 表单元素的内容 是依赖于本组件的数据; 写了value之后 必须有onChange事件与之对应

import React from 'react';
import reactDOM from 'react-dom';

/**
 * 非受控组件:  表单元素不受组件控制
 * 受控组件:    表单元素的内容 是依赖于本组件的数据; 写了value之后 必须有onChange事件与之对应
 */
class App extends React.Component {
    constructor() {
        super();
    }
    state = {
        name: "",
        pwd: ""
    }
    submit = () => {
    	// 获取非受控组件里面的内容
        // console.log(this.nameInp.value, this.pwdInp.value);
        console.log(this.state);
        this.setState({
            name: "",
            pwd: ""
        })
    }
    changeName(e) {
    	// 受控组件里面的内容
        console.log(e.target.value);
        this.setState({
            name: e.target.value
        })
    }
    changePwd(e) {
        console.log(e.target.value);
        this.setState({
            pwd: e.target.value
        })
    }
    render() {
        let { name, pwd } = this.state
        return <div>
            {/* 非受控组件   获取元素、获取内容*/}
            {/* <input ref={(el) => { this.nameInp = el }} type="text" placeholder="请输入用户名" />
            <input ref={(el) => { this.pwdInp = el }} type="password" placeholder="请输入密码" /> */}

            {/* 受控组件 */}
            <input type="text" placeholder="请输入用户名" value={name} onChange={(e) => { this.changeName(e) }} />
            <input type="password" placeholder="请输入用户名" value={pwd} onChange={(e) => { this.changePwd(e) }} />
            <button onClick={this.submit}>提交</button>
        </div>;
    }
}

reactDOM.render(<><App /></>, document.querySelector("#root"))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值