2015-01-26 16 views
34

Podejmuję decyzję, której struktury JavaScript użyć do mojej nowej aplikacji internetowej. Chciałem użyć Angular, ale ostatnio usłyszałem o React. Problem polega na tym, że nie znalazłem naprawdę dobrego porównania między nimi. Większość artykułów, które porównują, to "pro-reagujące" i nie pomagają w porównywaniu, a jedynie pokazują, dlaczego reakcja jest lepsza. np.AngularJS vs ReactJS

https://www.codementor.io/reactjs/tutorial/react-vs-angularjs http://www.quora.com/Pete-Hunt/Posts/Facebooks-React-vs-AngularJS-A-Closer-Look

Wszelkie prawdziwe doświadczenie, lub porównanie, które stwierdza, plusy i minusy obu? Dzięki za wejście

UPDATE - Może mały przykład może pomóc, jak zrobić to samo w obu ram i porównywać plusy/minusy

Przykład: Mam listę firm w tabeli . Każdy wiersz to 1 firma, każda kolumna zawiera informacje o firmie (nazwisko, adres, liczba pracowników). Istnieje wiele wpisów i muszę wykonać kilka stronicowania i sortowania (po stronie serwera).

+0

kątowa vs. reagują: co jest lepsze dla rozwoju sieci? - https://www.toptal.com/front-end/angular-vs-react-for-web-development?utm_campaign=blog_post_angular_vs_react_for_web_development&utm_medium=email&utm_source=blog_subscribers#remote-developer-job –

Odpowiedz

35

mieć rozsądne doświadczenie z Reactem, a w zasadzie żaden z Angular. To, co zamierzam powiedzieć o Angular, pochodzi z rzeczy, które czytałem i słyszałem od innych ludzi.

React

Plusy

  1. Łatwy do nauczenia
  2. Pojedyncze elementy są łatwiejsze do utrzymania
  3. Sposób React "Zawsze Re-render" jest miły, aby utrzymać go łatwiej zrozum, kiedy wszystko staje się złożone
  4. Flux jest naprawdę dobrą alternatywą dla wzorca MVC. Jednokierunkowy przepływ danych pomaga w utrzymaniu i utrzymaniu spójności danych i elementów DOM. W połączeniu ze strukturami danych Immutable.JS, to wisienka na szczycie tortu :)

Cons

  1. Nie grać ładny z bibliotekami DOM manipulacji (np jQuery)
  2. To naprawdę zmienia sposób, w jaki robisz rzeczy, szczególnie jeśli używasz Flux, co jest dobre, ale trochę się przyzwyczaja.
  3. Znalazłem kilka przypadków, w których ponowne renderowanie za każdym razem spowalnia aplikację, gdy komponenty obsługują duży zbiór danych w metodzie renderowania. Optymalizacja wydajności w tych przypadkach może być nieco trudna.

kątowe

Plusy

  1. Dobra dokumentacja
  2. Członkowie społeczności są pomocne (łatwo jest znaleźć dobrych odpowiedzi tutaj na SO).
  3. Dwukierunkowe powiązania danych sprawia, że ​​niektóre rzeczy naprawdę łatwe do wdrożenia

Wady

  1. problemy z wydajnością: Aby dwukierunkowe powiązanie danych musi sprawdzić zmiany w modelu danych . Musi także przeanalizować kod HTML, aby działał magicznie. To spowalnia działanie, a jeśli aplikacja działa na urządzeniu mobilnym, szybciej wyczerpuje baterię.
  2. Logika rozłożona na HTML i JS: kod trudniejszy do zrozumienia, obsługi i debugowania.
  3. v2 nadchodzi rozwiązać pewne problemy, ale czyni cały kod v1 nieaktualne
+7

Dobra odpowiedź, używam obu React i Angular przez około rok, jedną rzeczą, którą chciałbym dodać jest to, że ** Ja ** nigdy nie wybrał Angular over React, ale jeśli weźmiesz kilku losowych programistów bez doświadczenia React i musisz zacząć działać od razu, React trwa zbyt długo, aby nauczyć się być praktycznym. Ponadto Ember jest lepszą wersją Angular ... z tego, co słyszę. Naucz się Reaguj w swoim wolnym czasie i używaj go w następnym projekcie lub w wewnętrznych narzędziach swojej firmy. – FakeRainBrigand

+1

Tak, zawsze lepiej jest uczyć się samemu, a następnie zacząć od czegoś małego. –

+1

Separtaion HTML i JS czynią kod trudniejszym do zrozumienia mainatin i debugowania? Głupie gadanie. W rzeczywistości separacja to dobra praktyka "nie mieszać html z js" - a także sprawia, że ​​projekt jest bardzo przejrzysty i łatwy do zrozumienia. Model-View-Controler - szablon kątowy html jest widokiem, komponent kątowy js jest kontrolerem, a także kątowy ma część modelu (modele + usługi) –