Jestem w trakcie aktualizacji komponentu React do ES6 i doznałem problemu opisanego w tym pytaniu - Unable to access React instance (this) inside event handler - a mianowicie braku powiązania z instancją składnika .React.js i ES6: Dowolne powody, dla których nie należy wiązać funkcji w konstruktorze
To miało sens i oczywiście działa, ale jestem mylić o drugiej części odpowiedź:
Należy pamiętać, że wiązanie funkcję tworzy nową funkcję. Możesz albo powiązać go bezpośrednio w render, co oznacza, że nowa funkcja będzie tworzona za każdym razem, gdy komponent będzie renderować, lub wiązać ją w konstruktorze , który będzie uruchamiany tylko raz.
constructor() { this.changeContent = this.changeContent.bind(this); }
vs
render() { return <input onChange={this.changeContent.bind(this)} />; }
jestem przy założeniu, że wiązanie w konstruktorze jest preferowanym podejściem do wykonywania etc, ale wiesz co mówią o zakładać!
Jakie są kompromisy dla tych dwóch podejść? Czy jest jakaś sytuacja, w której jedna jest zdecydowanie lepsza od drugiej? Czy to nie ma znaczenia?
Twój pierwszy punkt wystarczy, aby przekonać mnie do pozostawienia go w render(). Jeśli wydajność staje się problemem, zawsze mogę zamienić ją na produkcję. – MattDuFeu
Nie używam programu hot-loader w moim projekcie, powinienem go użyć. Wszystkie wymagania wstępne (pakiet sieciowy, itp.) Są dostępne, chciałbym tylko wiedzieć, jakie główne ulepszenia mogę uzyskać dzięki programowi ładującemu? –