与Vue 相比 React 是如何实现数据双向绑定的?

1.v-model react没有实现
 
2.在react中数据是单向的 js---->dom
 
3.在react中如果需要数据双向绑定,js--->dom的绑定,有自己实现onChange事件
 
4.可以实现双向绑定的标签有input:text textarea select
import React, { Component } from 'react'

export default class App extends Component{

    constructor(){
        super();
        this.state = {
            message: 'hello',
            year: 2000
        }
    }
    
    render(){

        let {message, year} = this.state;

        return (
            <div>
                {/* v-model react没有实现 */}
                {/* 在react中数据是单向的  js---->dom */}

                {/* 在react中如果需要数据双向绑定,js--->dom的绑定,有自己实现onChange事件 */}
                {/* 可以实现双向绑定的标签有input:text  textarea  select */}

                <input type="text" value={message} onChange={this.inputChangeAction}/>

                <button onClick={()=>{
                    this.setState({message: 'hi'});
                }}>修改</button>

                <select value={year} onChange={this.selectChangeAction}>
                    <option>1990</option>
                    <option>2000</option>
                    <option>2010</option>
                    <option>2020</option>
                </select>
            </div>
        )
    }

    inputChangeAction = (ev)=>{
        console.log('变化了');
        console.log(ev.target.value);

        this.setState({message: ev.target.value});

    }

    selectChangeAction = (ev)=>{
        this.setState({year: ev.target.value});
    }
}

 

posted @ 2019-07-20 15:49  前端小菜鸟吖  阅读(1984)  评论(0编辑  收藏  举报