Обзор RxJS, библиотека для реактивного программирования

RxJS старт работы с JavaScript библиотекой
Метки: /

В этой статье мы разберём основы работы JavaScript библиотеки RxJS, которая нужна для реактивного программирования, на чистом JS и в других фреймворках.

Также если интересны различные JavaScript библиотеки, то почитайте статью «Обзор JavaScript библиотеки Lodash», думаю многим будет интересно.

Работа с RxJS:

RxJS — это библиотека для создания программ с асинхронным кодом, основанных на событиях, с использованием наблюдаемых последовательностей.

Он предоставляет один базовый тип, Observable, вспомогательные типы (Observer, Schedulers, Subjects) и операторы, вдохновленные дополнительными функциями Array#extras (map, filter, reduce, every и т.д.), Что позволяет обрабатывать асинхронные события как коллекции.

ReactiveX сочетает в себе шаблон Observer с шаблоном Iterator и функциональное программирование с коллекциями, чтобы удовлетворить потребность в идеальном способе управления последовательностями событий.

Основные концепции RxJS, которые решают асинхронное управление событиями:

  • Observable: представляет идею вызываемой коллекции будущих значений или событий;
  • Observer: представляет собой набор обратных вызовов, который знает, как прослушивать значения, доставленные Observable;
  • Subscription: представляет выполнение Observable, в первую очередь полезно для отмены выполнения;
  • Operators: это чфункции, которые позволяют использовать стиль функционального программирования для работы с коллекциями с такими операциями, как map, filter, concat, reduce и т.д.;
  • Subject: эквивалентен EventEmitter и является единственным способом многоадресной передачи значения или события нескольким наблюдателям;
  • Schedulers: являются централизованными диспетчерами для управления параллелизмом, что позволяет нам координировать выполнение вычислений, например setTimeout или requestAnimationFrame или другие;

Первый пример:

Как обычно вы регистрируете слушателей событий:

Вместо этого, используя RxJS, вы создаете наблюдаемый объект:

Чистота:

Что делает RxJS мощным, так это его способность создавать значения с использованием чистых функций. Это означает, что ваш код менее подвержен ошибкам.

Обычно вы создаете нечистую функцию, где другие части вашего кода могут испортить ваше состояние:

Используя RxJS, вы изолируете состояние:

Оператор scan() работает так же, как reduce для массивов. Он принимает значение, которое подвергается обратному вызову. Возвращенное значение обратного вызова станет следующим значением, отображаемым при следующем запуске обратного вызова.

Поток:

RxJS имеет целый ряд операторов, которые помогают вам контролировать, как события проходят через ваши наблюдаемые.

Вот как можно разрешить не более одного щелчка в секунду с помощью простого JavaScript:

С RxJS:

Другие операторы управления потоком: filterdelaydebounceTimetaketakeUntildistinctdistinctUntilChanged и так далее.

Значения:

Вы можете преобразовать значения, переданные через ваши наблюдателей.

Вот как вы можете добавить текущую позицию x мыши для каждого щелчка на простом JavaScript:

С RxJS:

Также стоит отметить, что эта библиотека работает с разными фреймворками, такими как Vue.js и Angular.js, для них есть специальные ответвления, для Vue vue-rx, а в Angular он и так работает.

Вывод:

В этой статье вы прочитали не большой обзор на JavaScript библиотеку RxJS, а точнее основы работы с ней, и показ основных возможностей, но если быть совсем точным, то это бы перевод официальной документации.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
(Пока оценок нет)
Загрузка...

Также рекомендую:

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии