首页 > 其他分享 >react组件三大核心属性之一refs

react组件三大核心属性之一refs

时间:2022-08-28 13:33:20浏览次数:58  
标签:input2 dom refs react 组件 ref 三大

-

ref让react更容易获取dom,和id比较像。只要在dom上定义ref属性,就可以在组件实例的this.refs中获取到对应的dom元素。

字符串形式的refs

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>字符串形式的ref</title>
</head>
<body>
  <!-- 准备一个容器 -->
  <div id="test"></div>
  <!-- 引入react核心库 -->
  <script src="https://cdn.bootcdn.net/ajax/libs/react/18.2.0/umd/react.development.min.js"></script>
  <!-- 引入react-dom, 用于支持react操作dom, 需要在核心库之后引入 -->
  <script src="https://cdn.bootcdn.net/ajax/libs/react-dom/18.2.0/umd/react-dom.development.min.js"></script>
  <!-- 引入babel.js,用于将jsx转化为js -->
  <script src="https://cdn.bootcdn.net/ajax/libs/babel-standalone/7.18.7/babel.min.js"></script>
  <!-- 引入prop-types -->
  <script src="https://cdn.bootcdn.net/ajax/libs/prop-types/15.8.1/prop-types.min.js"></script>
  <script type="text/babel">
    // 1.创建类组件
    class Demo extends React.Component{
      render() {
        return (
          <div>
            <input ref="input1" type="text" placeholder="点击按钮提示数据" />
            <button onClick={this.showData}>点我提示左侧的数据</button>
            <input ref="input2" onBlur={this.showData2 } type="text" placeholder="失去焦点提示数据" />
          </div>
        )
      }
      // 展示左侧输入框的数据
      showData = () => {
        console.log(this);
        const { input1 } = this.refs;
        alert(input1.value)
      }
      // 展示右侧输入框内的数据
      showData2 = () => {
        const { input2 } = this.refs;
        alert(input2.value)
      }
    }
    
    // 挂载
    ReactDOM.render(<Demo />, document.getElementById('test'))
  </script>
</body>
</html>

 

 

 

 

 

-

标签:input2,dom,refs,react,组件,ref,三大
From: https://www.cnblogs.com/fqh123/p/16632629.html

相关文章

  • React报错之Parameter 'props' implicitly has an 'any' type
    正文从这开始~总览当我们没有为函数组件或者类组件的props声明类型,或忘记为React安装类型声明文件时,会产生"Parameter'props'implicitlyhasan'any'type"错误。为了......
  • react18-学习笔记12-类class
    classAnimal{protectedname:string;staticage=18constructor(name:string){this.name=name}run(){return`${this.name}`......
  • react18-学习笔记13-类和接口
    interfaceRadio{switchRadio():void}interfaceBattery{checkBatteryStatus()}interfaceRadioWithBatteryextendsRadio{}classCarimplemen......
  • react18-学习笔记14-枚举(Enum)
    enumDirection{Up="Up",Down="Down",Left="Left",Right="Right"}console.log(Direction.Up)//0console.log(Direction[0])//Up//常量枚举可以......
  • react18-学习笔记15-泛型
    functionecho(arg:any):any{returnarg}constresult=echo(123)functionecho<T>(arg:T):T{returnarg}constresult1=echo(123)functionswap<T,U>(tu......
  • [React] Route-based Splitting
    Source:https://javascriptpatterns.vercel.app/patterns/performance-patterns/route-based-splitting Ifyou'reusing react-router fornavigation,youcanwra......
  • [React] Import on Visibility
    Source:https://javascriptpatterns.vercel.app/patterns/performance-patterns/import-on-visibility Onewaytodynamicallyimportcomponentsoninteraction,is......
  • [React] Compound Pattern
    Source:https://javascriptpatterns.vercel.app/patterns/react-patterns/compound-pattern Acompoundcompoenntusagelookslikethis:importReactfrom"react......
  • [React] SWR for data fetching
    DocsThename“SWR”isderivedfrom stale-while-revalidate,aHTTPcacheinvalidationstrategypopularizedby HTTPRFC5861.SWRisastrategytofirstret......
  • react中CodeMirror (代码编辑器)
    前言:实现一个在react项目中页面展示代码编辑器的效果。codemirror:使用JavaScript为浏览器实现的多功能文本编辑器。codemirror作用:专门用于编辑代码,并带有实现......