Согласно документации vue, нельзя хранить ничего, кроме простых объектов. (https://ru.vuejs.org/v2/api/#data ). Я всегда использую vuex как контейнер DI, я вижу это с этой точки зрения. Он держит vue подальше от бизнес-логики моего приложения и позволяет описывать бизнес-правила только с использованием JS без каких-либо зависимостей. Но такой подход ломает инструмент vue dev, и по какой-то причине не все тесты проходят. Есть ли способ обойти это ограничение? Например, экземпляры класса могут быть созданы в геттерах, а не в мутациях. Но у меня это не работает, потому что у некоторых конструкторов моих классов есть побочные эффекты (это не лучшая практика, но то, что у меня есть).
Можно ли хранить экземпляры пользовательского класса в Vuex / (данные Vue)?
comment
Ваше описание настолько абстрактно, что я не могу понять всего. Не могли бы вы привести несколько примеров?
- person Run   schedule 15.09.2020
Ответы (1)
Вы можете абсолютно хранить экземпляры классов в состоянии хранилища.
Обычно я храню массивы моделей, что действительно полезно для хранения логики в одном месте.
Что-то вроде:
Api.load('/api/users').then(res => commit('users', res.data.map(User.create)))
person
Dave Stewart
schedule
12.11.2020