重温react-10(函数组件和类组件的ref获取方式)

App.js的代码

06是函数组件

07是类组件

javascript 复制代码
import React, { useEffect, useRef } from 'react';
import LearnFunction06 from './LearnFunction06'; //  函数组件和类组件的ref使用方式
import LearnFunction07 from './LearnFunction07'; //  函数组件和类组件的ref使用方式
export default function BoxReact() {

  const learnRef = useRef(null)
  const classRef = useRef(null)
  useEffect(() => {
    console.log(learnRef.current);
    console.log(classRef.current);
  }, [])
  return (
    <div>
      <LearnFunction06 ref={learnRef}></LearnFunction06>
      <LearnFunction07 ref={classRef}></LearnFunction07>
    </div>
  )
}

06的代码

javascript 复制代码
import React, { forwardRef } from 'react'

export default forwardRef(function LearnFunction06(props, ref) {
    return (
        <div ref={ref}> LearnFunction06</div>
    )
})

正常函数组件是没有ref的,需要通过forwardRef来修饰组件才能产生ref

07的代码

javascript 复制代码
import React, { Component } from 'react'

export default class LearnFunction07 extends Component {
  render() {
    return (
      <div>LearnFunction07</div>
    )
  }
}

效果图

这样都可以拿到ref啦

相关推荐
是毛毛吧1 分钟前
GitHub热榜----前端已死?AionUi 横空出世:首个开源“生成式UI”框架,让 AI 在运行时“手搓”界面
前端·开源·github
斯普信专业组5 分钟前
ReAct Agent 解析:从理论到实践的高效推理框架
前端·react.js·前端框架
徐同保6 分钟前
开发onlyoffice插件,功能是选择文本后立即通知父页面
开发语言·前端·javascript
23124_8011 分钟前
Base64多层嵌套解码
前端·javascript·数据库
程序员张324 分钟前
Element Plus SCSS 变量覆盖用法
vue.js·前端框架·element-plus
啥都不懂的小小白25 分钟前
Vue Ajax与状态管理完全指南:从数据请求到全局状态控制
vue.js·ajax·vuex·插槽系统
多看书少吃饭26 分钟前
文件预览的正确做法:从第三方依赖到企业级自建方案(Vue + Java 实战)
java·前端·vue.js
菜鸟很沉26 分钟前
Vue3 + Element Plus 实现大文件分片上传组件(支持秒传、断点续传)
javascript·vue.js
Amumu1213828 分钟前
Vue核心(一)
前端·javascript·vue.js
敲敲了个代码29 分钟前
React 官方纪录片观后:核心原理解析与来龙去脉
前端·javascript·react.js·面试·架构·前端框架