写点什么

React Refs 笔记📝

作者:程序员海军
  • 2022 年 7 月 28 日
  • 本文字数:1015 字

    阅读完需:约 3 分钟

React Refs 笔记📝
什么是 Refs ?

它 可以访问 DOM 节点或在 render 方法中创建的 React 元素。

作用:

达到父子组件之间通信。

什么时候使用 refs

  • 管理焦点,文本选择或媒体播放。

  • 触发强制动画。

  • 集成第三方 DOM 库。

DOM 元素 添加 ref and class 组件添加 ref
  • DOM 元素添加 refs, 可以使用原生 api 来操作

  • class 添加 refs , 可以来控制 执行子组件事件执行


/* * @Description:  * @Author: ZhangXin * @Date: 2021-02-13 20:28:06 * @LastEditTime: 2021-02-13 22:02:27 * @LastEditors: ZhangXin */
import React, { Component } from 'react';import Test from './Test';class Refes extends Component { constructor(props) { super(props); this.state = { } this.inputValue = React.createRef(); this.classRefs = React.createRef(); this.getInputValue = this.getInputValue.bind(this) this.getResfClass = this.getResfClass.bind(this) } getInputValue(){ this.inputValue.current.focus() } getResfClass(){ this.classRefs.current.getInputValue() } render() { return ( <div> {/* DOM 元素添加refs, 可以使用原生api 来操作 */} <input type="text" ref={this.inputValue}/> <button onClick={this.getInputValue}> 提交</button> <button onClick={this.getResfClass}> class Refs </button> {/* class 添加 refs , 可以来控制 执行子组件事件执行 */} <Test ref={this.classRefs} /> </div> ); }} export default Refes;
复制代码
函数组件添加ref

本来是不支持在 函数组件(无状态组件)中,添加 ref 的,因为它没有实例对象。

可以使用 Hook 提供的 useRef 来在无状态组件中使用 ref


import React, { useRef } from 'react';

const Refs = () =>{ const textInput = useRef(null);
function getFocus(){ textInput.current.focus(); console.log('测试') } return ( <div> <input type="text" ref={textInput}/> <button onClick={getFocus}>获取函数组件的ref</button> </div> )}
export default Refs;
复制代码


发布于: 4 小时前阅读数: 9
用户头像

还未添加个人签名 2020.04.02 加入

🏅目前从事物流,铁路相关的前端全栈开发工作. 🏆2021年InfoQ写作平台-签约作者 🏆 🏆微信公众号:【前端自学社区】

评论

发布
暂无评论
React Refs 笔记📝_React_程序员海军_InfoQ写作社区