useRef es un gancho de React que permite crear una referencia persistente a un valor o un elemento DOM. A diferencia de useState, que se usa para administrar el estado que activa la repetición de renderizaciones, useRef se usa principalmente para efectos secundarios o para acceder a elementos DOM directamente.
El gancho useRef es particularmente útil para:
El gancho useRef devuelve un objeto con la propiedad .current. cuando llamas a useRef, crea una referencia persistente al valor que pasas como argumento. Esta referencia se almacena en la propiedad .current del objeto devuelto.
Para crear una referencia simplemente llame a useRef con el valor inicial.
import { useRef} from 'react' const App = () => { const countRef = useRef(0) return (...) } export default App
En el ejemplo anterior countRef es una referencia al valor inicial 0.
Para acceder al valor de referencia simplemente llame al objeto countRef con la propiedad .current
import { useRef} from 'react' const App = () => { const countRef = useRef(0) const increment = () => { countRef.current } return () } export default AppCount: {countRef.current}
En el ejemplo anterior, si hace clic en el botón, llamará a la función de incremento que aumentará el countRef, pero el recuento no se actualizará en
Count: {countRef.current}
porque se actualiza useRef. no provoque re-renderizaciones como useState.actualice el código al ejemplo siguiente para obtener el resultado esperado.
import { useRef, useState } from 'react' const App = () => { const countRef = useRef(0) const [count, setCount] = useState(0) const increment = () => { countRef.current setCount(countRef.current) } return () } export default AppCount: {count}
es posible utilizar el gancho useRef para acceder y cambiar las propiedades de los elementos html
const App = () => { const inputRef = useRef(null) const handleFocus = () => { inputRef.current.focus() } return( ) }
A diferencia de useState o variable, useRef puede pasar valores y datos entre renderizaciones, como datos almacenados en caché o ajustes de configuración.
En algunos casos, usar useRef puede ayudar con la optimización de componentes al evitar renderizaciones innecesarias. Por ejemplo, si tiene un componente que representa una lista grande de elementos, puede almacenarlo en caché usando useRef y solo modificarlo y volver a renderizar los elementos que han cambiado.
Si intentas pasar una referencia a tu propio componente como este
const inputRef = useRef(null); return;
Es posible que aparezca un error en la consola:
Advertencia: No se pueden dar referencias a los componentes de la función. Los intentos de acceder a esta referencia fracasarán. ¿Querías usar React.forwardRef()?
Para resolver este problema, ajuste el componente personalizado con forwardRef así:
const inputRef = useRef(null); return;
Componente personalizado:
import { forwardRef } from 'react'; const MyInput = forwardRef(({ value, onChange }, ref) => { return ( ); }); export default MyInput;
useRef es un potente gancho que se utiliza principalmente para el uso de efectos secundarios, como el almacenamiento en caché de datos entre renderizaciones o el acceso a elementos del DOM. Es una gran herramienta para optimizar el rendimiento y lograr funcionalidades específicas en la aplicación React.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3