2016-05-31 14 views
6

Zastanawiam się nad zintegrowaniem re- akcji-redux w 3-letniej bazie kodu Angularjs. Nie chcę od razu odnawiać całego kodu, raczej stopniowo wprowadzając metodę reakcji-redux poprzez nowe funkcje, które rozwiną mój zespół.Integracja reaktywnego reduktora z istniejącą aplikacją Angulars

  1. Czy są jakieś sprawdzone metody? (wszelkie zasoby zostaną docenione)
  2. Czy stara funkcja (napisana w języku ng) zawiera części reagujące-redux, czy będę musiał je przepisać?
  3. Jak mogę uniknąć wykonywania tych samych wywołań interfejsu API? (jeśli oba wymagają tego samego zasobu):
  4. Czy należy unikać zmiany razem?
+0

Cześć Alex. Chciałbym wiedzieć, jaką decyzję podjęliście (i miejmy nadzieję dlaczego), ponieważ nasz zespół próbuje rozwiązać podobny problem. – Manu

+0

Postanowiliśmy odroczyć integrację na kilka miesięcy. Kupiłem sobie trochę czasu :) –

+0

Hej, Alex, czy myślałeś o konwersji warstwy danych na zwykły redux, zamiast reagować-redux? Jeśli zaczniesz od redux, będziesz w stanie wyodrębnić * właśnie * warstwę danych, co może być dużo łatwiejsze niż konwertowanie danych _i_ui komponentów ... to może ci pomóc zachować komponenty 'ng'. –

Odpowiedz

0

mam powodzeniem migracji aplikacji pod brązowo-dziedzinie ograniczenia Zwróciłem uwagę na oryginalne pytanie.

Rozwiązanie oparte jest na dwóch podejść:

  1. drobnych elementów - to składniki, które są dość znacznie ograniczona. Na przykład lista powiadomień.
  2. Cała część aplikacji, której nie mogę jeszcze migrować - w zasadzie niektóre trasy/widoki, które nadal są napisane w Angular.

Zarówno zbliżył zastosować podobną technikę do tego, który sugerował tutaj: http://softeng.oicr.on.ca/chang_wang/2017/04/17/Using-AngularJS-components-directives-in-React/?utm_source=reactnl&utm_medium=email

wskazówka: Jest to znacznie łatwiejsze, jeśli kątowe zależności są właściwie zarządzane.

2
  1. nie wiem o żadnej konkretnej najlepszych praktyk, ale niedawno zaczął używać NG-Redux (https://github.com/angular-redux/ng-redux) w moim obecnym Kątowymi 1.5 aplikacji z dobrym skutkiem do tej pory. Naprawdę miło było czerpać korzyści z jednokierunkowego przepływu danych i zarządzania stanami strukturalnymi z Redux, zachowując jednocześnie rdzeń Angular. Umożliwi to również stopniową migrację jednego modelu jednostki na raz. Chociaż sam tego nie użyłem, widzę, że do pakowania komponentów reakcji w dyrektywach kątowych dostępne jest https://github.com/ngReact/ngReact. Jeśli chcesz w pełni korzystać z samodzielnego reagowania-redux, może to być dobrym krokiem.
  2. Do zintegrowania ng-reduxu z istniejącymi funkcjami wymagało refaktoryzacji, ale jeśli już korzystasz z modeli dla danych poza kontrolerami, to nie jest tak źle. Ng-redux pozwala wywoływać funkcje Action Creator bezpośrednio ze sterownika, co zwykle zastępuje procedury obsługi zdarzeń UI.
  3. Możesz łatwo wykonywać wywołania API za pomocą akcji asynchronicznych za pomocą redux-thunk przy użyciu ng-redux. Możesz po prostu użyć istniejących usług kątowych, aby zażądać dostępu do interfejsu API, a następnie użyć odpowiedzi do wysłania standardowego działania, aby zaktualizować stan.
  4. Powiedziałbym, że zdecydowanie warto zintegrować ng-redux w celu standaryzacji przepływu danych w aplikacji. Pomoże to lepiej zorganizować projekt i może poprawić wydajność w zależności od tego, w jaki sposób się refaktoryzujesz. Zaleta ngReact jest dla mnie mniej oczywista, chyba że chcesz powoli konwertować komponenty, dopóki nie wyrzucisz całkowicie rdzenia Angula.
+0

Dzięki! To może być dobry pomysł, ale jest to zbyt powolna migracja, przynajmniej dla mnie. Zacząłem wdrażać bardziej agresywne rozwiązanie, w którym re- akt-redux przejmuje całkowitą kontrolę nad Angular, a nie na odwrót. Nie ukończyłem jeszcze projektu, więc nie mogę napisać o tym moich ujęć - ale zamierzam się podzielić, jak tylko to się stanie. –

Powiązane problemy