Привет. Актуальна — проект
развивается и задачи такие сейчас стоят часто. Недавно выпустили
документацию и
красивый сайт для проекта. Сами используем его в продакшене и знаю несколько проектов, который внедрили Логакс.
На Логакс стоит смотреть если:
- У тебя на сайте несколько пользователей могут редактировать один документ — это очень часто в различных админках, где в компании несколько менеджеров. Тут конкурентов вообще мало, но и Логакс не даст 100% решения, надо будет грамотно продумывать атомарные операции. Хотя даже если не продумывать будет лучше, чем с AJAX/GraphQL.
- Если нужны обновления данных без перезагрузки страницы. Тут решений много, но Логакс отлично ложиться если у тебя Redux — не надо делать отдельный слой совместимости, просто пересылаешь экшены. Ну и всякие приятные мелочи есть — синхронизация между вкладками, корректное поведение в офлайн и т. п.
- Если нужен оптимистичный UI — когда форма закрывается сразу по нажатию на Сохранить. Это круто ускоряет UI, но, понятно, что просто ради одной-двух форм нет смысла добавлять Логакс. Это скорее как дополнительный бонус
- Если надоело как криво работают современные приложения с реальной сетью. Это было главной причиной создания Логакса для меня. Хочется, чтобы данные между вкладками синхронизировались. Чтобы приложение не показывало бесконечную критику, если Интернет пропал (а это происходит постоянно). В отличии от AJAX и GraphQL, Логакс сразу сделан из расчёта реального Интернета, а не идеальной связи localhost-localhost на машине разработчика.
Конкуренты: для задачи 1 можно взять Firebase, но это vendor lock-in, сложно использовать свою базу и разрешение конфликтов чуть хуже. Для задачи 2 есть много решений (гугли по websocket js) в том числе для GraphQL — но у многих решений хуже продуманы крайние случаи (например, разный порядок событий на разных клиентах приведёт к разному результату). Для оптимистичного UI тоже есть решения, большинство их которых так же ломается в реальных случаях (что будет если сервер упал).
Но вообще сейчас много есть попыток пересоздать связь с сервером — тот же gun.js. Гугли по CRDT js.
Вопросы можно задать нам в
гитер-чате.