react课堂笔记五之键盘事件 表单事件 事件对象以及React中的ref获取dom节点 、React实现类似Vue的双向数据绑定

键盘事件

  inputKeyUp=(e)=>{

        if(e.keyCode==13){

            alert(e.target.value);
        }

    }

   <input onKeyUp={this.inputKeyUp}/>

事件对象: 

 <button aid="123" onClick={this.run}>事件对象</button>

  run=(event)=>{

        // alert(event.target);   /*获取执行事件的dom节点*/

        event.target.style.background='red';

        //获取dom的属性

        alert(event.target.getAttribute('aid'))

   }

表单事件

     1、监听表单的改变事件                        onChange
     2、在改变的事件里面获取表单输入的值           事件对象
     3、把表单输入的值赋值给username              this.setState({})
     4、点击按钮的时候获取 state里面的username     this.state.username
 

     inputChange=(e)=>{

        // console.log('111');

        //获取表单的值

        console.log(e.target.value);

        this.setState({

            username:e.target.value

        })
     }

     getInput=()=>{

        alert(this.state.username);

     }

     <input onChange={this.inputChange}/> <button onClick={this.getInput}>获取input的值</button>

ref获取dom节点

    1、监听表单的改变事件                        onChange
    2、在改变的事件里面获取表单输入的值            ref获取 
    3、把表单输入的值赋值给username              this.setState({})
    4、点击按钮的时候获取 state里面的username     this.state.username
 

    inputChange=()=>{

        /*
            获取dom节点

                1、给元素定义ref属性<input ref="username" />

                2、通过this.refs.username 获取dom节点
        */

        let val=this.refs.username.value;

        this.setState({
            username:val
        })

    }
    getInput=()=>{

        alert(this.state.username);
    }

    <input ref="username" onChange={this.inputChange}/> <button onClick={this.getInput}>获取input的值</button>

双向数据绑定、即model改变影响View    view改变反过来影响model
   

 inputChange=(e)=>{

        this.setState({

            username:e.target.value

         })

    }
    setUsername=()=>{
        this.setState({

            username:'李四'
        })

    }

    <input  value={this.state.username} onChange={this.inputChange}/> 

    <p> {this.state.username}</p>

    <button onClick={this.setUsername}>改变username的值</button>


 

猜你喜欢

转载自blog.csdn.net/weixin_39247773/article/details/87367759