Как стать автором
Обновить

Комментарии 9

А причем здесь Angular2?
Как видно из кода, библиотека работает с любым фреймворком, разве что больше типизации за счет TypeScript появилось.

Изначально, я разрабатывал ее под Angular2, но она действительно достаточно проста, чтобы ее переиспользовать

Также, было бы неплохо оформить саму библиотеку лучше:
1) Добавить служебные файлы и папки .idea, .iml, .DS_Store в .gitignore
2) Убрать peerDependencies из package.json. Они не используются в коде, а значит, не нужны.
3) Секции main и typings из package.json ведут на несуществующие файлы. Если правильно их описать, то подключать библиотеку станет чуть проще.


import {StateMachine, StateEvent} from 'angular2-state-machine';

Согласен, надо убрать и упростить, работаем над этим, спасибо за комментарий.

Не специализируюсь на фронте, поэтому может глупость спрошу, но вроде-бы есть redux для работы со state-ом? У него ещё и плюшек всяких много.

Redux — управление состоянием всего приложения используя лишь один основной Store + определенное количество reducers, которые state меняют и actions, которые что-то делают — например клик юзера по блоку или загрузка данных. Именно это и является имплементацией Flux. Тогда как, моя маленькая библиотечка служит примитивным целям — просто менять состояние простого обьекта и в зависимости от состояния, приложение может что-то делать.


У Redux есть связи между reducers, Store и actions, тогда как у меня все просто:


  1. Создал машину состояний
  2. Поменял состояние
  3. При изменении, можно заставить приложение как-то на это отреагировать.

В конце концов, по сути, и моя либа и Redux делает одно и тоже — управляет состоянием, но уровень размаха разный.

Поскольку в Angular повсеместно используется RxJS — есть смысл поглядеть на ngrx, который вдохновлялся Redux и использует RxJS
Чем лучше той же machina.js?

Ничем — делает абсолютно тоже, только написано на TypeScript. State-machine всегда выполняет одно и тоже — будет присутствовать только небольшая разница в имплементации — и все. В данном случае — бонус для TypeScript любителей.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории