2016-11-02 48 views
16

Tło

Byłem budowania aplikacji przy użyciu React Native & Redux dokonać oceny nad tym, czy go używać do nadchodzącego projektu nad Swift i będzie całkowicie natywny.State Zarządzanie dla animacji Korzystanie React Native i Redux

Szczerze wierzę, że techniki Dana Abramova z Redux są przypadkiem solidnej inżynierii. Brak aktualizacji stanu i posiadanie poglądu jako funkcji państwa jest świetny i jestem bardzo zaangażowany w ten pomysł. Miejsce, w którym zamierzam się nieco odeprzeć, to wrzucanie animacji do miksu.

Scenariusz

Bardziej skomplikowane animacje wymagają zarządzania państwowego, na przykład, zanikaniem widok, zastępując tekst i blaknięcie go ponownie. Chciałbym tylko chcesz zaktualizować tekst w połowie animacji, a to łatwe do zrobienia przy użyciu lokalnego stanu i wykorzystania animowanej struktury.

Powiedz, że tekst do wyświetlenia jest sterowany przez stan, byłby aktualizowany w momencie zmiany stanu poprzez odpowiednią akcję, ale ze względu na prezentację potrzebuję tego między tymi dwoma animacjami.

Przykładem może być wybór rekordu z listy, na której znajduje się etykieta na ekranie pokazująca nazwę wybranego rekordu. Idealnie byłoby zaktualizować globalny sklep od razu, ale dokonaj miłego przejścia na samej etykiecie.

Moje myśli

Moim zdaniem to sprawia, że ​​pewne ilości sensie użyć „” stan lokalnej wewnątrz komponentów do czynienia z animacji, a głównym przechowują Redux wiecej ogólnych danych lub architektury państwa. Problem polega na tym, że łamie to ideę poglądu będącego funkcją globalnego państwa i nie jestem pewien, czy jest to zgodne ze mną.

Z drugiej strony zarządzanie sekwencjami animacji itp. Poprzez zapisywanie stosów akcji, reduktorów i zaśmiecanie sklepu również nie jest czyste.

Pytanie

wiem React Native jest w jego dzieciństwie, a nie każdy korzysta Redux, ale jest tam powszechnie akceptowane sposób zarządzania animacje w tego rodzaju scenariusza?

+0

Jestem bardzo zainteresowany tym, myślę o tym samym scenariuszu. – bilby91

+0

Zadałem sobie podobne pytanie. Nie sądzę, że Redux został zaprojektowany do obsługi animacji i przejść. Jeśli uważasz, że każda klatka animacji jest stanem, musisz wysłać co najmniej 60 akcji na sekundę. Spowoduje to, że twoja aplikacja będzie bardziej skomplikowana i nie przyniesie wiele korzyści. Rozważmy ten scenariusz: dotykasz przycisku na stronie, a następnie przechodzisz do innej strony. Ma sens definiować stany na każdej stronie. Ale jak zdefiniować stany dla tego stosu nawigacyjnego? Zbudowałem kilka aplikacji, w których stany wyświetlania nie mają sensu ze względu na ilość animacji i wymagań perf. –

+0

Tak, wpadłem na pomysł wykorzystania lokalnego stanu do kontrolowania animacji, ale nadal nie jest w 100% w porządku ze mną! –

Odpowiedz

8

Pracuję nad Reactem tylko przez 9 miesięcy, więc jestem prawdopodobnie n00b w porównaniu do takich jak ty, Matt, i mogę bez wahania powiedzieć, że redux jest niesamowity, ale to nie powinno zastąpić Stan składnika wewnętrznego we wszystkich okolicznościach. Zwłaszcza w przypadku animacji. Sam się o to prosiłeś, ale pytam ponownie: dlaczego to musi być w globalnym stanie? Redux zapewnia elementy w całej aplikacji, aby uzyskać aktualny stan, gdy wszystko dzieje się w aplikacji. Nie znaczy to jednak, że nigdy nie powinno być żadnego stanu w twojej aplikacji, z wyjątkiem sklepu Redux.

Człowiek o wiele mądrzejszy ode mnie powiedział

Jeśli czujesz presji, aby robić rzeczy „drogę Redux”, może to być znak, że ty lub twoi koledzy biorą go zbyt poważnie. To tylko jedno z narzędzi w twoim przyborniku, eksperyment, który oszalał. Lokalny stan jest w porządku ....

Kompromisem, który oferuje Redux, jest dodawanie pośrednictwa, aby oddzielić "co się stało " od "jak rzeczy się zmieniają".Czy zawsze dobrze jest robić? Nie. To kompromis.

Co to za cytowanie? Jaki bluźnierczy programista React może powiedzieć, że Redux nie powinien być używany do wszystkich rzeczy React?

Powiem ci kto. Twórca Redux.

https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367#.flb8fzjr8

TLDR Zastosowanie Redux gdzie jest ona użyteczna i gdzie go sens. To niesamowite, jak to się robi. Ale nie próbuj dopasować tego okrągłego kołka do kwadratowej dziury.

Mam nadzieję, że jest to przydatne.

+0

Nie, robiłeś to dłużej niż ja! Zgadzam się z tym, co mówisz, i już wcześniej widziałem Dana. Chcemy to zaakceptować, ponieważ wydaje się, że to konsensus ze wszystkich rozmów, które odbyłem. –