zoukankan      html  css  js  c++  java
  • react事件

    事件的使用分为两种:1.通过ref容器;2.通过event.target

    1.通过onXxx属性指定事件处理函数(注意大小写)

      a.React使用的是自定义(合成)事件, 而不是使用的原生DOM事件 —————— 为了更好的兼容性
      a.React中的事件是通过事件委托方式处理的(委托给组件最外层的元素) ————————为了的高效
     
    2.通过onXxx属性指定事件处理函数(注意大小写)
      event.target得到发生事件的DOM元素对象 ——————————不要过度使用ref
     
            //创建组件
            class Demo extends React.Component{
                /* 
                    (1).通过onXxx属性指定事件处理函数(注意大小写)
                            a.React使用的是自定义(合成)事件, 而不是使用的原生DOM事件 —————— 为了更好的兼容性
                            b.React中的事件是通过事件委托方式处理的(委托给组件最外层的元素) ————————为了的高效
                    (2).通过event.target得到发生事件的DOM元素对象 ——————————不要过度使用ref
                 */
                //创建ref容器
                myRef = React.createRef()
    
                //展示左侧输入框的数据
                showData = ()=>{
                    console.log(this.myRef.current.value);
                }
    
                //展示右侧输入框的数据
                showData2 = (event)=>{
                    console.log(event.target.value);
                    // alert(event.target.value);
                }
    
                render(){
                    return(
                        <div>
                            <input ref={this.myRef} type="text" placeholder="点击按钮提示数据"/>&nbsp;
                            <button onClick={this.showData}>点我提示左侧的数据</button>&nbsp;
                            <input onBlur={this.showData2} type="text" placeholder="失去焦点提示数据"/>&nbsp;
                        </div>
                    )
                }
            }
            //渲染组件到页面
            ReactDOM.render(<Demo a="1" b="2"/>,document.getElementById('test'))

    看的出来,第一种ref的写法,有点像vue的v-model双向绑定的意思。先定义要监听的东西,在需要的事件里直接获取;

    第二种就是常规的事件触发,在函数里获取这个事件的东西。

  • 相关阅读:
    interleaver design
    MKL + VS2019
    【QQ空间转移】该掌握的知识
    【QQ空间转移】原创 通信历史及接收机
    【QQ空间转移】通信小精灵
    【QQ空间转移】雷公如何发信号
    【QQ空间转移】硬币的两面,Nyquist rate 和 Nyquist frequency
    【QQ空间转移】Peano公理
    【QQ空间转移】复变函数导数和微分的深入理解
    【QQ空间转移】 由BPSK想到的。。。
  • 原文地址:https://www.cnblogs.com/ssszjh/p/14592164.html
Copyright © 2011-2022 走看看