使用createRef API 创建ref

1: 使用createRef api 创建 ref 

<script type="text/babel">  // 一定要写 text/babel  就是将jsx 的语法转化js 语法
  // 使用 class 关键字创建组件
  class Demo React.Component {
    // React.createaRef() 调用之后返回一个容器, 该容器是可以存储ref 标识节点。
    // 该容器是专人专用, 每一个ref 标识都需要使用单独的一个

    myRef = React.createRef();
    myRef = React.createRef();
    // 显示左侧输入框
    showData = () => {
      alert(this.myRef.current.value);  可以拿到弹框里边值
    }
    
   使用类创建组件必须要使用render 函数
   render() {
     return {
      <div>
       <input ref="{this.myRef}" type="text" palcehodler="点击按钮显示数据"></input> 
       // 但是在 React 中 不需要操作dom 节点可以使用 ref 属性;
       <input ref="input" type="text" palcehodler="点击按钮显示数据"></input>
       <button onClick="{this.showData}">点击显示左侧数据</button>
       <input type="text" placehoder="失去焦点显示数据"></input>
     </div>
     }
   }
  }
</script>
--------------------------------------------------------------
总结使用 ref
1: 字符串形式的ref React 官方不推荐使用。 
2: 推荐使用回调函数形式的
3:  或者使用 React.createRef() 形式创建Ref 格式。
内联函数形式会执行两次: ref 形式会执行两次。
使用class 类样式  就不会调用两次。
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

--------------------------------------------------------------------------------------------

React 框架中事件处理:

在React 定义事件规则;
1: 通过 onXxx 属性指定事件处理函数(注意大小写); 
   在原生事件中 onclick on后边的click 可以小写。 但是在React 框架中on 后边的事件名称必须大写。
   在React 框架为什么要使用自定义事件; React 自定义事件也是在原生上进一步封装。
   (为了更好的兼容性, 原生事件有一定的局限性)
   
2: 在React 事件中使用的是自定义(合成)事件, 而不是使用原生DOM事件
3: React 事件中是通过事件委托的方式处理的  (委托给组件最外层的元素)  (事件冒泡原理 为了更加高效)
 
4:通过event.target 得到的发生事件的DOM 元素对象。
-------------------------------------------------
<scirpt type="text/babel">  使用babel 语句就是将jsx 语法转化js 语法
  // 使用class 类创建组件 但是使用类创建组件 必须要大些
  使用关键字继承 父组件 React.Component {}
  class Demo extends React.Component {
    // 显示右侧输入数据
    showData = (event) => {
       console.log(event.target.value);
    }

    render() {     // 必须要有render函数  必须要有返回值
      return {
         // return 返回值中书写jsx 语法
        <div>
           <input onBlur={this.showData}></input>
        </div> 
       }
    }
  }

</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值