Mam stronę, na której muszę załadować kilka początkowych danych Ajax.
Czytam o tym Reactjs
strona że powinienem zadzwonić componentDidMount
.
Co to jest korzyść złożenia wniosku componentDidMount
zamiast componentWillMount
?
Odpowiedzi:
4 dla odpowiedzi № 1Ponieważ reakcja ma być używana jako widok, twoje żądania ajaxowe powinny być umieszczone w twoim modelu.
Inaczej, jeśli z jakiegoś powodu musisz zrobić to w widoku, różnica między componentDidMount
i componentWillMount
jest to, że pierwszy jest przywoływany po raz element jest ponownie renderowany i masz do niego dostęp za pośrednictwem this.getDOMNode()
, a drugi jest wywoływany po raz tuż przed render()
zaczyna się.
6 dla odpowiedzi nr 2
Podczas korzystania z renderowania serwera, componentWillMount
nazywa się, ale componentDidMount
nie jest. Z tego powodu mam do czynienia z każdą inicjalizacją, która wymaga przeglądarki (w tym manipulacji Ajax i DOM) componentDidMount
.
4 dla odpowiedzi nr 3
W componentDidMount()
masz dostęp do DOM, jeśli tego potrzebujesz; w componentWillMount()
nie masz jeszcze dostępu (choć możesz go nie potrzebować, jeśli chcesz tylko zadzwonić setState
).
Upewnij się, że w twoim render()
metoda, która jest w stanie sprawnie renderować stan "pusty" (tj. przed powrotem wyników Ajax). getInitialState()
może być pomocne przy ustawianiu pewnego podstawowego pustego stanu.