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

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

АХАХАХАХ. Но да. Я просто смирился и делаю обработку и сохранения состояния в vuex. Лучше к сожалению не сделать. Что еще больше меня удручает, в документации про общую архитектуру и что делать при проблемах роста молчок. Нет лучших практик от слова совсем.

Вообщем не должно возникать проблем при использовании vuex только в качестве хранилища. Но проблемы начинаются, если пытаешься делать что-либо помимо хранения данных.
Хотя у меня и с хранением иногда возникают проблемы, приходится решать хуками vuex, что называть кроме как костылем не повернётся язык (проблема была связана с тем, что vuex не обновлял computed реактивно)

Неее. Я про концепцию саму. Там в первичной концепции дыра.


  • commit — фактически тут и работаем с данными. Данные пришли делаем трансформацию и прочее.
  • dispatch — асинхронный и тут у нас врывается работа с получением данных и передачей параметров

Оно первоначально так сделано что так и больше никак. Причем в большем числе случаев проще получается всю обработку положить в dispatch, а в commit делать тупо сейв в хранилище.


Хотя по идее в dispatch мы должны брать входящие данные перекладывать их http далее обрабатывать тут ошибки возникшие и положить raw данные в commit, а там уже обработать.


А если идти еще дальше, то вызовы в http из dispatch надо выносить в отдельный слой который прячет реализацию вызовов.


Но все это дружно порождает такое лютое количество boilerplate кода, что народ срезает углы. Я в том числе. В итоге основной код лежит в dispatch. А commit используется только как прокладка между store и dispatch. Потому что убрать никак. Те же getters тоже используются только в случае если одинаковых вызовов больше двух. Проблема все та же boilerplate.

Если про это, то да. Почти всегда использую commit'ы в качестве прокси для изменения state

MobX так же прекрасно работает с Vue, можно полностью заменить и глобальное состояние и локальное у компонентов.
Vue даже не проверяет пропсы на моменте компиляции. Можно создать экземпляр с обязательным пропсом, но не передавать этот пропс при использовании экземпляра. Vue ругнется только в рантайме.

Я с MobX не работал. Как там обстоят дела с модулями? Если там есть модули:
1. Можно ли их подгружать в момент работы?
2. Как происходит работа с модулями (получение состояния, изменение состояния)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации