我们在类组件中要获取到节点,ref传递一个回调函数,要么传递**React.createRef**引用
表单组件
表单组件
函数组件中我们要得到节点,可以使用useRef来获取
作用
useRef的作用:获取DOM节点和获取组件实例
useRef执行过后返回一个对象,该对象有一个current属性,将来的DOM节点或者组件实例会放到该属性保存起来,
它的初始值就是调用useRef时传入的参数
import React, { useEffect,useState,useRef } from 'react'export default function RefComp() {const [count,setCount] = useState(10)// 底层封装的就是React.createRef()const userRef = useRef()useEffect(() => {console.log(RefComp.inputElement);console.log(userRef.current);}, [])const changeCount = (event)=>{console.log(event.target.value);setCount(event.target.value)}return (<div><input type="text" ref={input => RefComp.inputElement = input} /><input type="text" onChange={changeCount} value={count} /><input type="text" ref={userRef}/></div>)}
根据结果我们可以发现,useRef得到的{current:节点},useRef这个hook底层就是封装了React.createRef()模块
受控组件和非受控组件用法跟类组件保持一致
