6.9 KiB
id, title, permalink, prev, next
| id | title | permalink | prev | next |
|---|---|---|---|---|
| component-api-it-IT | API dei Componenti | component-api-it-IT.html | top-level-api-it-IT.html | component-specs-it-IT.html |
React.Component
Istanze di un React Component sono create internamente a React durante il rendering. Queste istanze sono riutilizzate in rendering successivi, e possono essere accedute dai metodi del tuo componente come this. L'unica maniera di ottenere un riferimento a una istanza di un React Component fuori da React è conservare il valore restituito da ReactDOM.render. All'interno di altri Component, puoi utilizzare i ref per ottenere il medesimo risultato.
setState
void setState(
function|object nextState,
[function callback]
)
Effettua una combinazione di nextState nello stato attuale. Questo è il metodo principale che va usato per scatenare aggiornamenti della UI da gestori di eventi e callback di richieste al server.
Il primo argomento può essere un oggetto (contenente zero o più chiavi da aggiornare) o una funzione (con argomenti state e props) che restituisce un oggetto contenente chiavi da aggiornare.
Ecco come utilizzarla passando un oggetto:
setState({mykey: 'my new value'});
È anche possibile passare una funzione con la firma function(state, props). Questo può essere utile in certi casi quando desideri accodare un aggiornamento atomico che consulta i valori precedenti di state+props prima di impostare i nuovi valori. Ad esempio, supponi che vogliamo incrementare un valore nello stato:
setState(function(previousState, currentProps) {
return {myInteger: previousState.myInteger + 1};
});
Il secondo parametro (opzionale) è una funzione callback che verrà eseguita quando setState ha terminato e il rendering del componente è stato effettuato.
Note:
MAI modificare
this.statedirettamente, in quanto chiamaresetState()successivamente potrebbe sovrascrivere la modifica fatta. Trattathis.statecome se fosse immutabile.
setState()non cambia immediatamentethis.state, ma crea una transizione di stato in corso. Accederethis.statesubito dopo aver chiamato questo metodo potrebbe potenzialmente restituire il valore precedente.Non viene garantita alcuna sincronicità per le chiamate di
setState, e le chiamate stesse potrebbero essere raggruppate per migliorare le prestazioni.
setState()scatena sempre un ri-rendering a meno che la logica di rendering condizionale venga implementata inshouldComponentUpdate(). Se oggetti mutabili sono usati e la logica non può essere implementata inshouldComponentUpdate(), chiamaresetState()solo quando il nuovo stato differisce dal precedente eviterà ri-rendering superflui.
replaceState
void replaceState(
object nextState,
[function callback]
)
Come setState(), ma elimina ogni chiave preesistente che non si trova in nextState.
Nota:
Questo metodo non è disponibile il componenti
classES6 che estendonoReact.Component. Potrebbe essere eliminato del tutto in una versione futura di React.
forceUpdate
void forceUpdate(
[function callback]
)
In modo predefinito, quando lo stato o le proprietà del tuo componente cambiano, ne verrà effettuato il ri-rendering. Tuttavia, se questi cambiano implicitamente (ad es.: dati profondi all'interno di un oggetto cambiano senza che l'oggetto stesso cambi) o se il tuo metodo render() dipende da altri dati, puoi istruire React perché riesegua render() chiamando forceUpdate().
Chiamare forceUpdate() causerà la chiamata di render() sul componente, saltando l'esecuzione di shouldComponentUpdate(). Questo scatenerà i normali metodi del ciclo di vita per i componenti figli, incluso il metodo shouldComponentUpdate() di ciascun figlio. React tuttavia aggiornerà il DOM soltanto se il markup effettivamente cambia.
Normalmente dovresti cercare di evitare l'uso di forceUpdate() e leggere soltanto this.props e this.state all'interno di render(). Ciò rende il tuo componente "puro" e la tua applicazione molto più semplice ed efficiente.
getDOMNode
DOMElement getDOMNode()
Se questo componente è stato montato nel DOM, restituisce il corrispondente elemento DOM nativo del browser. Questo metodo è utile per leggere valori dal DOM, come valori dei campi dei moduli ed effettuare misure sul DOM. Quando render restituisce null o false, this.getDOMNode() restituisce null.
Nota:
getDOMNode è deprecato ed è stato sostituito da ReactDOM.findDOMNode().
Questo metodo non è disponibile il componenti
classES6 che estendonoReact.Component. Potrebbe essere eliminato del tutto in una versione futura di React.
isMounted
boolean isMounted()
isMounted() restituisce true se il rendering del componente è stato effettuato nel DOM, false altrimenti. Puoi usare questo metodo come guardia per chiamate asincrone a setState() o forceUpdate().
Nota:
Questo metodo non è disponibile il componenti
classES6 che estendonoReact.Component. Potrebbe essere eliminato del tutto in una versione futura di React.
setProps
void setProps(
object nextProps,
[function callback]
)
Quando stai integrando con un'applicazione JavaScript esterna puoi voler segnalare un cambiamento a un componente React il cui rendering è stato effettuato con ReactDOM.render().
Chiamare setProps() su un componente al livello radice cambierà le sue proprietà e scatenerà un ri-rendering. Inoltre, puoi fornire una funzione callback opzionale che verrà eseguita quando setProps ha terminato e il rendering del componente è terminato.
Nota:
Quando possibile, l'approccio dichiarativo di invocare nuovamente
ReactDOM.render()sullo stesso nodo è preferibile. Quest'ultimo tende a rendere gli aggiornamenti più comprensibili. (Non vi è una differenza significativa di prestazioni tra i due approcci.)Questo metodo può essere chiamato soltanto su un componente al livello radice. Ovvero, è disponibile soltanto sul componente passato direttamente a
ReactDOM.render()e nessuno dei suoi figli. Se il tuo intento è usaresetProps()su un componente figlio, approfitta degli aggiornamenti reattivi e passa la nuova proprietà al componente figlio quando viene creato inrender().Questo metodo non è disponibile il componenti
classES6 che estendonoReact.Component. Potrebbe essere eliminato del tutto in una versione futura di React.
replaceProps
void replaceProps(
object nextProps,
[function callback]
)
Come setProps() ma elimina ogni proprietà preesistente anziché riunire i due oggetti.
Nota:
Questo metodo non è disponibile il componenti
classES6 che estendonoReact.Component. Potrebbe essere eliminato del tutto in una versione futura di React.