Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 December 24

СР

Сергей Рыжков... in Nuxt.js — русскоговорящее сообщество
Vlad
Смысл от еще одного слоя под сервисы? Экшены с этим отлично справляются, ну и слоя апи достаточно имхо
Долго рассуждать,... Не сейчас
источник

СР

Сергей Рыжков... in Nuxt.js — русскоговорящее сообщество
Kirill
ну мне лично vuex видится больше как репозиторий (как паттерн) с плюшками реактивности. на этом его зона ответственности заканчивается. сущности все живут в классах отдельных и генерятся по факту необходимости, из стора лишь данные получая.
Можно и так, главное чтоб команда понимала, и те кто придёт позже эту кашу саппортить 😂
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
Vlad
Смысл от еще одного слоя под сервисы? Экшены с этим отлично справляются, ну и слоя апи достаточно имхо
простой кейс. у тебя несколько однотипных счетчиков, обновляющих некоторые данные с бэка.  на одной вьюхе тебе надо один счетчик запустить, на другой пяток одинаковых ходящих по разным урлам. как будешь их идентифицировать? айдишники каждому придумывать?
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
Сергей Рыжков
Можно и так, главное чтоб команда понимала, и те кто придёт позже эту кашу саппортить 😂
каша получается во вьюиксе )) а так все по полочкам, слоями )
источник

V

Vlad in Nuxt.js — русскоговорящее сообщество
Kirill
простой кейс. у тебя несколько однотипных счетчиков, обновляющих некоторые данные с бэка.  на одной вьюхе тебе надо один счетчик запустить, на другой пяток одинаковых ходящих по разным урлам. как будешь их идентифицировать? айдишники каждому придумывать?
ничего не понял
источник

СР

Сергей Рыжков... in Nuxt.js — русскоговорящее сообщество
Kirill
простой кейс. у тебя несколько однотипных счетчиков, обновляющих некоторые данные с бэка.  на одной вьюхе тебе надо один счетчик запустить, на другой пяток одинаковых ходящих по разным урлам. как будешь их идентифицировать? айдишники каждому придумывать?
Да. Я бы сделал в сервисе типищированный метод, получающих данные по ид счётчика, и компонент дёргает то что нужно, не засоряя общий стейт
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
Vlad
ничего не понял
проблема в инкапсуляции. я, пардон, хочу, чтобы методы обработки данных жили в том же объекте, что и данные ) если есть корзина и есть товар, товар должен сам уметь положить себя в корзину (корзина добавить в себя товар) не дергая внешние методы. это та бизнес-логика, которая не должна жить за пределами своего домена
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
а корзина суметь посчитать свою сумму и выдать ее своим геттером, самостоятельно ))
источник

V

Vlad in Nuxt.js — русскоговорящее сообщество
Kirill
проблема в инкапсуляции. я, пардон, хочу, чтобы методы обработки данных жили в том же объекте, что и данные ) если есть корзина и есть товар, товар должен сам уметь положить себя в корзину (корзина добавить в себя товар) не дергая внешние методы. это та бизнес-логика, которая не должна жить за пределами своего домена
не вижу никаких проблем с отдельным методом/экшеном в сторе, который принимает товар. Если они повторяются - модули в помощь
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
есть разница между
basket.total()
и
total(basket)
источник

СР

Сергей Рыжков... in Nuxt.js — русскоговорящее сообщество
Kirill
проблема в инкапсуляции. я, пардон, хочу, чтобы методы обработки данных жили в том же объекте, что и данные ) если есть корзина и есть товар, товар должен сам уметь положить себя в корзину (корзина добавить в себя товар) не дергая внешние методы. это та бизнес-логика, которая не должна жить за пределами своего домена
Да, верная мысль. Но только не всегда прям нужно все в вуекс пихать. Имно, только расшаренные данные, и каплинг (связь) =>событие где-то меняет стейт, а не стейт сам себя
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
Сергей Рыжков
Да, верная мысль. Но только не всегда прям нужно все в вуекс пихать. Имно, только расшаренные данные, и каплинг (связь) =>событие где-то меняет стейт, а не стейт сам себя
ну мне лично ближе предметное проектирование, да и проект такой. там под сотню разных сущностей с кучей фронтовой логики. с голым vuex сдохли бы все
источник

V

Vlad in Nuxt.js — русскоговорящее сообщество
Kirill
ну мне лично ближе предметное проектирование, да и проект такой. там под сотню разных сущностей с кучей фронтовой логики. с голым vuex сдохли бы все
а как вы реализовали? Диспатчить то за пределами вуекса нельзя
источник

СР

Сергей Рыжков... in Nuxt.js — русскоговорящее сообщество
Kirill
ну мне лично ближе предметное проектирование, да и проект такой. там под сотню разных сущностей с кучей фронтовой логики. с голым vuex сдохли бы все
Я не спорю!!
Каждый проект-своя пуля!
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
Vlad
а как вы реализовали? Диспатчить то за пределами вуекса нельзя
класс модели в конструкторе принимает вуекс данные, все апдейты через универсальные мутации, которые в глубине системы единожды реализованы. на выходе во вьюхах есть класс модели с данными и методами и есть сервисы дополнительные, реализующие логику приложения
источник

СР

Сергей Рыжков... in Nuxt.js — русскоговорящее сообщество
Kirill
класс модели в конструкторе принимает вуекс данные, все апдейты через универсальные мутации, которые в глубине системы единожды реализованы. на выходе во вьюхах есть класс модели с данными и методами и есть сервисы дополнительные, реализующие логику приложения
Кстати, как боролся с тем что накст то весь стейт сериалищует в джейсон, и при спа, ты получишь pojo
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
В накст только залез, да и то он интересен как статика только. Но по сути с pojo только работа и идет
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
Мы не можем хранить готовые экземпляры в стейте. И ругаться будет и вообще антипаттерн
источник

СР

Сергей Рыжков... in Nuxt.js — русскоговорящее сообщество
Kirill
Мы не можем хранить готовые экземпляры в стейте. И ругаться будет и вообще антипаттерн
Ну не сказал бы, решаемо, toJson переопределяешь у модельки, а если нужны и методы то в маунтед воссозлаешь объект (я class-transformer пользую), через #опу, конечно, но пока так
источник

K

Kirill in Nuxt.js — русскоговорящее сообщество
у модельки есть некие служебные данные, типа $pending, пока аксиос на сервер бегает, и вести его мимо стора чревато его же руганью на мутации левые
источник