Co jest prawdą w Stanach i przemalowaniu

May 05 2023
Potrzebując poszukiwania pracy i widząc zapotrzebowanie na tworzenie aplikacji mobilnych z wykorzystaniem Reacta, postanowiłem zagłębić się w tę bibliotekę. Studiując ich oficjalne instrukcje, znalazłem podtytuł „Reaguj tylko aktualizuje to, co konieczne”.

Potrzebując poszukiwania pracy i widząc zapotrzebowanie na tworzenie aplikacji mobilnych z wykorzystaniem Reacta, postanowiłem zagłębić się w tę bibliotekę. Studiując ich oficjalne instrukcje, znalazłem podtytuł „Reaguj tylko aktualizuje to, co konieczne”. Wyjaśnij: „React DOM porównuje element i jego elementy potomne z poprzednim i stosuje tylko aktualizacje DOM niezbędne do doprowadzenia DOM do pożądanego stanu”. Dają nam również przykład, aby można go było zweryfikować.

Aby zweryfikować twierdzenie, po prostu umieszczamy „console.log()”.

Po wykonaniu funkcji widzimy konsolę przeglądarki, a zawartość „console.log()” pojawia się wielokrotnie wraz ze zmodyfikowanym czasem.

Ponowne testowanie:

Wątpiąc w ten wynik, decyduję się na kolejny test z użyciem własnych komponentów bez TAGów HTML, ponieważ React używa zmodyfikowanego HTML o nazwie JSX.

Wynik:

Modyfikowanie stanu powoduje odświeżenie całej funkcji. Jest to sprzeczne z tym, co wskazuje instrukcja.

Ogólna nieufność

Następnie wątp w narzędzia mobilne, które mówią o zarządzaniu stanami i zoptymalizowaniu malowania. I zdecydowałem się wypróbować, z tą samą funkcjonalnością, SwiftUI na iPhone'a i JetPack Compose na Androida.

SwiftUI:

Wynik:

Komponowanie JetPack:

Wynik:

Co się dzieje?

Mobilne malowanie nie jest wyszukanym detalem, zużywa zasoby i baterię. Pod tym względem React jest już nieefektywny. Ale dlaczego jakakolwiek branża nalega? Oczywiste jest, że lepsze oprogramowanie nie jest zainteresowane, ale oszczędza koszty bez wpływu na zyski. Jeśli krowa produkuje dwa litry mleka więcej dziennie, to jest mile widziane, niezależnie od tego, co ta nadwyżka powoduje u konsumenta. Nic dziwnego, że Facebook jest matką baranka.

Specjalne podziękowania dla Sanjaya S