Sono in procinto di aggiornare un componente React a ES6 e ho riscontrato il problema descritto in questa domanda - Unable to access React instance (this) inside event handler - vale a dire non vincolante per l'istanza del componente .React.js ed ES6: Qualsiasi motivo per non associare una funzione nel costruttore
Questo aveva un senso e, naturalmente, ha lavorato, ma sono confuso circa l'altra parte della risposta:
essere consapevoli del fatto che il legame di una funzione crea una nuova funzione. Puoi associarlo direttamente al rendering, il che significa che una nuova funzione sarà creata ogni volta che il componente esegue il rendering, o vincola nel tuo costruttore , che verrà attivato una sola volta.
constructor() { this.changeContent = this.changeContent.bind(this); }
vs
render() { return <input onChange={this.changeContent.bind(this)} />; }
sto supponendo che il legame nel costruttore è l'approccio preferito per le prestazioni, ecc, ma sai cosa dicono di assumere!
Quali sono i compromessi per questi due approcci? C'è mai una situazione in cui uno è decisamente migliore dell'altro? O non importa?
Il tuo primo punto è sufficiente per convincermi a lasciarlo in render(). Se le prestazioni diventano un problema, posso sempre scambiarlo per la produzione. – MattDuFeu
Non sto usando hot-loader nel mio progetto, dovrei usarlo. Tutti i prerequisiti (webpack, ecc.) Ci sono, volevo solo sapere quali miglioramenti importanti posso ottenere con hot-loader? –