Lavorare con i Riferimenti Utilizzando l'Hook useRef
L'hook useRef consente di creare una variabile che mantiene un riferimento a un elemento, un valore o qualsiasi altro dato che non influisce sul rendering del componente. Questo può essere utile per memorizzare valori mutabili, accedere agli elementi del DOM o preservare valori tra i diversi render del componente.
Sintassi:
Per utilizzare l'hook useRef, si dichiara una variabile (refVariable) e le si assegna il risultato dell'invocazione di useRef(). Facoltativamente, è possibile fornire un valore iniziale (initialValue) come argomento di questo hook.
const refVariable = useRef(initialValue);
Nota
Il valore corrente può essere consultato e aggiornato tramite la proprietà
refVariable.current. Il vantaggio diuseRefè che permette di manipolare questi valori senza causare un nuovo rendering del componente.
Esempio:
Creiamo il componente FormInput che utilizza l'hook useRef per creare un riferimento a un elemento input e lo mette a fuoco quando si clicca un pulsante.
import React, { useRef } from "react";
const FormInput = () => {
const inputRef = useRef();
const handleClick = () => {
inputRef.current.focus();
};
return (
<div>
<input type="text" ref={inputRef} />
<button onClick={handleClick}>Focus Input</button>
</div>
);
};
In questo esempio, l'hook useRef crea un riferimento chiamato inputRef. Questo riferimento viene assegnato all'attributo ref dell'elemento input, permettendo di accedere all'elemento input tramite inputRef.current.
Spiegazione riga per riga:
- Riga 1: Si importa l'hook
useRefdalla libreria React per sfruttarne la funzionalità; - Riga 3: Il componente
FormInputviene definito utilizzando la sintassi convenzionale della funzione; - Riga 4: Si inizializza la variabile
inputRefutilizzando l'hookuseRef, che rappresenta il riferimento all'input; - Riga 6-8: Questa funzione freccia JavaScript gestisce la logica del click sul pulsante, che mette a fuoco il campo di input per l'utente;
- Riga 10-15: Viene renderizzato il markup del componente.
- Alla riga 12, si imposta il riferimento utilizzando l'attributo
refe si assegna la variabileinputRefcome valore; - Il pulsante alla riga 13 utilizza l'attributo
onClickper specificare la funzione da eseguire al click, che in questo caso è la funzionehandleClick.
Codice completo dell'app:
1. Qual è lo scopo principale dell'hook useRef?
2. Quale delle seguenti opzioni descrive meglio il comportamento di una variabile useRef quando il suo valore viene aggiornato?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain more use cases for useRef besides focusing an input?
How does useRef differ from useState in React?
Can you show how to use useRef to store a mutable value that isn't a DOM element?
Awesome!
Completion rate improved to 2.17
Lavorare con i Riferimenti Utilizzando l'Hook useRef
Scorri per mostrare il menu
L'hook useRef consente di creare una variabile che mantiene un riferimento a un elemento, un valore o qualsiasi altro dato che non influisce sul rendering del componente. Questo può essere utile per memorizzare valori mutabili, accedere agli elementi del DOM o preservare valori tra i diversi render del componente.
Sintassi:
Per utilizzare l'hook useRef, si dichiara una variabile (refVariable) e le si assegna il risultato dell'invocazione di useRef(). Facoltativamente, è possibile fornire un valore iniziale (initialValue) come argomento di questo hook.
const refVariable = useRef(initialValue);
Nota
Il valore corrente può essere consultato e aggiornato tramite la proprietà
refVariable.current. Il vantaggio diuseRefè che permette di manipolare questi valori senza causare un nuovo rendering del componente.
Esempio:
Creiamo il componente FormInput che utilizza l'hook useRef per creare un riferimento a un elemento input e lo mette a fuoco quando si clicca un pulsante.
import React, { useRef } from "react";
const FormInput = () => {
const inputRef = useRef();
const handleClick = () => {
inputRef.current.focus();
};
return (
<div>
<input type="text" ref={inputRef} />
<button onClick={handleClick}>Focus Input</button>
</div>
);
};
In questo esempio, l'hook useRef crea un riferimento chiamato inputRef. Questo riferimento viene assegnato all'attributo ref dell'elemento input, permettendo di accedere all'elemento input tramite inputRef.current.
Spiegazione riga per riga:
- Riga 1: Si importa l'hook
useRefdalla libreria React per sfruttarne la funzionalità; - Riga 3: Il componente
FormInputviene definito utilizzando la sintassi convenzionale della funzione; - Riga 4: Si inizializza la variabile
inputRefutilizzando l'hookuseRef, che rappresenta il riferimento all'input; - Riga 6-8: Questa funzione freccia JavaScript gestisce la logica del click sul pulsante, che mette a fuoco il campo di input per l'utente;
- Riga 10-15: Viene renderizzato il markup del componente.
- Alla riga 12, si imposta il riferimento utilizzando l'attributo
refe si assegna la variabileinputRefcome valore; - Il pulsante alla riga 13 utilizza l'attributo
onClickper specificare la funzione da eseguire al click, che in questo caso è la funzionehandleClick.
Codice completo dell'app:
1. Qual è lo scopo principale dell'hook useRef?
2. Quale delle seguenti opzioni descrive meglio il comportamento di una variabile useRef quando il suo valore viene aggiornato?
Grazie per i tuoi commenti!