Jaki jest odpowiednik funkcji $ watch kątowej w React.js?
Chcę słuchać zmian stanu i wywołać funkcję, taką jak getSearchResults ().
componentDidMount: function() {
this.getSearchResults();
}
javascript
reactjs
Eniz Gülek
źródło
źródło
Następujące metody cyklu życia zostaną wywołane w przypadku zmiany stanu. Możesz użyć dostarczonych argumentów i bieżącego stanu, aby określić, czy coś istotnego się zmieniło.
źródło
componentDidUpdate
komponentu z właściwością było właściwą receptą. Dzięki za to.componentWillUpdate
jest przestarzały: actjs.org/blog/2018/03/27/update-on-async-rendering.htmlcomponentDidUpdate
nie będzie również odpalać po otrzymaniu nowych rekwizytów, niekoniecznie tylko po zmianie stanu?componentWillUpdate
jest przestarzałe.Myślę, że powinieneś używać poniższego cyklu życia komponentu, tak jakbyś miał właściwość wejściową, która podczas aktualizacji musi wyzwolić aktualizację komponentu, jest to najlepsze miejsce do zrobienia tego, ponieważ zostanie wywołane przed renderowaniem, możesz nawet zaktualizować stan komponentu, aby był odzwierciedlone w widoku.
źródło
Od czasu React 16.8 w 2019 roku z użyciem hooków useState i useEffect , poniższe są teraz równoważne (w prostych przypadkach):
AngularJS:
Reagować:
źródło
Używanie useState z useEffect, jak opisano powyżej, jest całkowicie poprawne. Ale jeśli funkcja getSearchResults zwraca subskrypcję, useEffect powinien zwrócić funkcję, która będzie odpowiedzialna za anulowanie subskrypcji. Zwracana funkcja z useEffect będzie działać przed każdą zmianą zależności (nazwa w powyższym przypadku) i zniszczeniem komponentu
źródło
Minęło trochę czasu, ale do wykorzystania w przyszłości: można użyć metody shouldComponentUpdate ().
ref: https://reactjs.org/docs/react-component.html
źródło
shouldComponentUpdate
więc może nie być odpowiednia w tym przypadku użycia.