2015-10-18 28 views
12

Ponieważ należy unikać odpowiedzi subiektywnych na SO, pytam konkretnie: Jakie są różnice funkcjonalne i/lub wydajnościowe pomiędzy tymi trzema bibliotekami funkcjonalnymi/reaktywnymi, które sprawiłyby, że wybrałbym jedną z nich w stosunku do innych? Wyeliminowałem BaconJS ze względu na jego zależność od jQuery. Jestem nowicjuszem w strumieniach JS i przede wszystkim interesuje mnie zapoznanie się z nimi najpierw w NodeJS, a później w kontekście AngularJS. Jeśli wybrałeś jeden z nich spośród innych, jakie kryteria prowadzą do wyboru?Jakie są funkcje różnicujące między Highland.js, Kefir.js i Rx.js?

Odpowiedz

16

Wszystko poniżej jest dość prywatną :)

RxJS

Plusy:

  • Dokumentacja i duża społeczność.
  • Wspólny interfejs z rodziną Rx *. To duża zaleta, ponieważ możesz adoptować próbki ze społeczności RxJava.
  • Wiele prymitywów w bibliotece i niektórych próbkach jak z nich korzystać
  • ciśnienie wsteczne
  • jest to rodzaj Etalon dla innych bibliotek

Wady:

  • Czasami wygląda na zbyt skomplikowaną
  • Wdrożona z myślą "Java"

Bacon.js

Plusy

  • Naprawdę ładne dokumentacja z niektórych zaawansowanych próbek (wąż gry, wdrażanie na przykład)
  • dużo prymitywów
  • realizowane z JS w umyśle
  • Stwierdziłem, że naprawdę łatwo jest zacząć

Wady - nie wdrażają ciśnienia wstecznego, który sprawia, że ​​głupie na backend

Highland.js

Plusy:

  • to przeznaczony do pracy z node.js (lub browserify) środowisku, które jest naprawdę ładny
  • żadne obce koncepcje (z JavaScript perspektywy/node)
  • z powrotem -pressure
  • implementacja jest na szczycie strumieni węzła, co jest naprawdę świetnym pomysłem
  • mały ślad

Wady:

  • dokumentacja Silly żadnych przykładów. Właściwie za każdym razem, gdy próbuję adoptować próbki z Rx lub Bacona
  • nie ma niektórych prymitywów. Właściwie można wdrożyć większość z nich już realizowanego przez siebie, ale jest to bolesne (patrz poprzedni punkt)

Podsumowanie: z powodu braku próbek poznasz je wszystkie :) IMHO, najbardziej perspektywicznym jeden jest Highland.js . Ale RxJs jest znacznie bardziej dojrzały

Wskazówka: Jeśli chcesz o coś zapytać na StackOverflow używać RxJS dialektem i przełożyć je do młodzieży

+0

Dzięki za odpowiedź .. to jest to, czego szukałem ("plusy/minusy"). Highland.js wygląda chyba najbardziej atrakcyjnie na podstawie tego, co napisałeś powyżej. Jednakże, kiedy badam React, [istnieje próbka używająca RxJS do przepływu danych zamiast Flux] (http://qiita.com/kimagure/items/22cf4bb2a967fcba376e). Istnieją również [wiązania Rx do React] (https://github.com/fdecampredon/rx-react) i [przykład do łączenia React, RxJS, React-router i Webpack] (https://github.com/ Cmdv/React-RxJS). Więc masz rację, prawdopodobnie nauczę się więcej niż jednego z nich. :) – Ville