react双向绑定

react双向绑定

何为双向绑定?其实就是改变model层能自动改变view层,view层改变
model层也能自动改变。
React已经实现了改变model层能自动改变view层,所以我们要做的就是改
变view层能自动改变model层。

React当中,有个onChange属性,可以给input绑定事件,当input框里的值发生变化时会触发调用方法。

改变input值上方标题也会随之改变

  • 通过事件对象获取值
import React, { Component,createRef } from 'react';

class App extends Component {
    constructor(props) {
        super(props);
        this.state = { 
            msg:"你好react"
         }
        // 创建一个dom引用
        this.inpRef = createRef();
    }
   
    changeMsg= (e)=>{
        this.setState({msg:e.target.value})
    }
    render() { 
        return ( <div>
            {/* 受控表单-表单双向绑定 */}
            <p>{this.state.msg}</p>
            <input type="text" value={this.state.msg} onChange={this.changeMsg}/><br />
            <input type="text" value={this.state.msg} onChange={this.changeMsg.bind(this)}/><br />
            <input type="text" value={this.state.msg} onChange={e=>this.changeMsg(e)}/>
            <br />
           
        </div> );
    }
}
 
export default App;
  • 通过ref来获取
import React, { Component,createRef } from 'react';

class App extends Component {
    constructor(props) {
        super(props);
        this.state = { 
            msg:"你好react"
         }
        // 创建一个dom引用
        this.inpRef = createRef();
    }
    getVal=()=>{
        // 获取表单值
        alert(this.inpRef.current.value);
    }
    changeMsg= (e)=>{
        this.setState({msg:e.target.value})
    }
    render() { 
        return ( <div>
            {/* 受控表单-表单双向绑定 */}
            <p>{this.state.msg}</p>
            <input type="text" value={this.state.msg} onChange={this.changeMsg}/><br />
            <input type="text" value={this.state.msg} onChange={this.changeMsg.bind(this)}/><br />
            <input type="text" value={this.state.msg} onChange={e=>this.changeMsg(e)}/>
            <br />
            {/* 非受控表单 */}
            <input type="text" ref={this.inpRef} />
            <button onClick={this.getVal}>获取值</button>
        </div> );
    }
}
 
export default App;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值