А есть какой нибудь примет, лаконичной и верной реализации?

|
webben 2022-06-27 09:23:32
htclog1981 2022-06-27 09:19:30
Что можно еще в этом слое делать кроме переиспользования? обрабатывать ошибки запроса/валидации кажется лучше в компоненте. Мапить как то полученные данные? вот тут возможно в сервисном слое. хотя пока такой надобности нет.

а есть какой нибудь примет, лаконичной и верной реализации?

vuejs_ru-1086903.jpg
у меня вот так выглядит код апи запроса и сервиса, который его вызывает
первый генерируется из сваггера

htclog1981 2022-06-27 09:27:06
webben 2022-06-27 09:23:32
у меня вот так выглядит код апи запроса и сервиса, который его вызывает
первый генерируется из сваггера

Про swagger не очень в курсе. Посмотрел вроде code генератор запросов.. А про сервис вижу, там фильтры как то обрабатываются.. в общем как обертка над запросом. но обработки ошибок там нет.. а код компонента просто вызов наверное в try ? а всякие с юзером и авторизацией запросы, из стора дергается сервисный слой?

htclog1981 2022-06-27 09:28:24
webben 2022-06-27 09:23:32

SystemToFilterOptions, Pagination это уже для строгости как понимаю типизировано

webben 2022-06-27 09:31:27
htclog1981 2022-06-27 09:27:06
Про swagger не очень в курсе. Посмотрел вроде code генератор запросов.. А про сервис вижу, там фильтры как то обрабатываются.. в общем как обертка над запросом. но обработки ошибок там нет.. а код компонента просто вызов наверное в try ? а всякие с юзером и авторизацией запросы, из стора дергается сервисный слой?

здесь нет ошибок бизнес-логики по типу «недостаточно средств на счету» или т.п, поэтому здесь обработки нет, если бы подобные ошибки были, то они бы здесь обрабатывались
этот запрос дергается из компонента

htclog1981 2022-06-27 09:33:52
webben 2022-06-27 09:31:27
здесь нет ошибок бизнес-логики по типу «недостаточно средств на счету» или т.п, поэтому здесь обработки нет, если бы подобные ошибки были, то они бы здесь обрабатывались
этот запрос дергается из компонента

а зачем их тут обрабатывать если выводить в компоненте? да и как обрабатывать.. if (someError) someErrorField.value=someError такое на для сервисного слоя

webben 2022-06-27 09:34:32
htclog1981 2022-06-27 09:33:52
а зачем их тут обрабатывать если выводить в компоненте? да и как обрабатывать.. if (someError) someErrorField.value=someError такое на для сервисного слоя

чтобы привести их с того вида, в котором их присылает бэк, к тому, в котором мне удобно их вывести в компоненте

webben 2022-06-27 09:36:19
ну и по дефолту ошибки просто выбросятся как исключения, что неудобно для ошибок, которые можно и нужно обработать
Alex_Developers 2022-06-27 10:00:49
Как у Pinia сохранять данные из запроса?
Alex_Developers 2022-06-27 10:00:54
Если нет мутаций
2022-06-27 10:02:16
Alex_Developers 2022-06-27 10:00:49
Как у Pinia сохранять данные из запроса?

this.someStateVariable = await $axios.get(‘/some/api’)

sevesar 2022-06-27 10:02:36
Alex_Developers 2022-06-27 10:00:54
Если нет мутаций

Обращаетесь через this напрямую к стейту

M921070 2022-06-27 10:27:12
Коллеги, пробую сделать функцию (пока сам функционал еще не продумал до конца), которая будет вычислять размер иконки в зависимости от ее названия. Пишу на composition api. На вход функции подаю пропс c названием иконки. Далее импортирую функцию в компонент. Но не могу понять как сделать, чтобы она отрабатывала при изменении пропса. Иконки изменяются в приложении динамически, и svg должен менять размер.
M921070 2022-06-27 10:27:18
vuejs_ru-1086916.jpg

M921070 2022-06-27 10:27:30
а вот в компоненте функция
M921070 2022-06-27 10:27:31
vuejs_ru-1086918.jpg

htclog1981 2022-06-27 10:38:04
webben 2022-06-27 09:36:19
ну и по дефолту ошибки просто выбросятся как исключения, что неудобно для ошибок, которые можно и нужно обработать

просто try catch ошибок я делаю в компоненте. тк там их и нужно присвоить и вывести.

webben 2022-06-27 10:38:32
htclog1981 2022-06-27 10:38:04
просто try catch ошибок я делаю в компоненте. тк там их и нужно присвоить и вывести.

я к тому, что try catch плохо подходит для ошибок бизнес логики

htclog1981 2022-06-27 10:38:46
или надо уже подвязывать сервисной слой на форму и ее модель. там уже типа composable
htclog1981 2022-06-27 10:41:15
webben 2022-06-27 10:38:32
я к тому, что try catch плохо подходит для ошибок бизнес логики

а почему? конечно зависит от того, что api выдает.
но помойму есть несколько основных типов ошибок

— формы и валидация. если конечно она не вся клиентская vee-validate. у меня пока нет

— ошибки бизнес логики. типа статус операции плохой, нет денег в кошельке, не туда пробуем записать файл. такое не разбирается на фронте по смыслу. просто получили и вывели.

— ошибка авторизации. тут все просто редирект на логин

webben 2022-06-27 10:44:33
htclog1981 2022-06-27 10:41:15
а почему? конечно зависит от того, что api выдает.
но помойму есть несколько основных типов ошибок

— формы и валидация. если конечно она не вся клиентская vee-validate. у меня пока нет

— ошибки бизнес логики. типа статус операции плохой, нет денег в кошельке, не туда пробуем записать файл. такое не разбирается на фронте по смыслу. просто получили и вывели.

— ошибка авторизации. тут все просто редирект на логин

потому что мы не знаем обрабатывает ли какой-то код эту ошибку и на каком уровне, из-за чего поток выполнения кода становится рваным и нельзя сразу сказать какая ветка кода будет выполняться
потому что сами ошибки не типизируются, так как кроме бизнес ошибки мы можем получить исключение, что опять же не дает нам проверить все ли ошибки были обработаны

ass_gram 2022-06-27 10:45:30
Всем привет, посоветуйте хорошие курсы по Vue js
ass_gram 2022-06-27 10:45:38
основы js изучил
N3P0m 2022-06-27 10:46:51
ass_gram 2022-06-27 10:45:38
основы js изучил

изучай js дальше тогда

ass_gram 2022-06-27 10:46:58
ни получается найти нормальные курсы
ass_gram 2022-06-27 10:47:05
N3P0m 2022-06-27 10:46:51
изучай js дальше тогда

что именно?

N3P0m 2022-06-27 10:48:00
ass_gram 2022-06-27 10:47:05
что именно?

промисы, конструкторы и тд

ass_gram 2022-06-27 10:54:05
А курсы по vue js есть ?
ass_gram 2022-06-27 10:54:09
N3P0m 2022-06-27 10:48:00
промисы, конструкторы и тд

изучал

webben 2022-06-27 10:55:40
ass_gram 2022-06-27 10:45:30
Всем привет, посоветуйте хорошие курсы по Vue js

посмотри криптономикон на ютубе и читай документацию

ass_gram 2022-06-27 10:57:52
Блин, Archakov Blog хорошо снял курсы по React, очень круто рассказывает )
Жалко он не снимает на Vue JS
RemiZOffAlex 2022-06-27 11:05:05
@chestudio вакансии, резюме и обсуждение работы не связанной с Vue тут 👉 https://t.me/itjobs_ru
вакансии, резюме и обсуждение работы связанной с Vue тут 👉 https://t.me/vuejs_jobs

IT Jobs — работа/вакансии/резюмеTelegram
Публикация и обсуждение вакансий, резюме и работы в сфере IT

Нормы поведения: https://cutt.ly/QFPWXA
Основной канал @itjobs_ru_feed
Правила оформления: https://specialistoff.net/page/627

M921070 2022-06-27 11:07:46
Коллеги, попробую еще раз спросить). Как сделать так, чтобы при изменении агрумента composabl-a, менялся его return. Динамически.
M921070 2022-06-27 11:07:47
vuejs_ru-1086939.jpg

htclog1981 2022-06-27 11:07:56
webben 2022-06-27 10:44:33
потому что мы не знаем обрабатывает ли какой-то код эту ошибку и на каком уровне, из-за чего поток выполнения кода становится рваным и нельзя сразу сказать какая ветка кода будет выполняться
потому что сами ошибки не типизируются, так как кроме бизнес ошибки мы можем получить исключение, что опять же не дает нам проверить все ли ошибки были обработаны

да ещё исключения конечно..

У меня обычно цепочка условий типа такой:

if (errorType==»validationError» )
//обрабатываем ошибку валидации

formErrors = validationErrors
else if (errorType == «accountError»)
formErrorMsg = accountError
else
console. error(err)

formErrorMsg = t(«Unknown Error» )

И все это в компоненте…

Предлагаете тоже самое, но в сервисе? Можно пример?

webben 2022-06-27 11:19:08
htclog1981 2022-06-27 11:07:56
да ещё исключения конечно..

У меня обычно цепочка условий типа такой:

if (errorType==»validationError» )
//обрабатываем ошибку валидации

formErrors = validationErrors
else if (errorType == «accountError»)
formErrorMsg = accountError
else
console. error(err)

formErrorMsg = t(«Unknown Error» )

И все это в компоненте…

Предлагаете тоже самое, но в сервисе? Можно пример?

могу только доклад скинуть

Дмитрий Махнёв Артём Кобзарь — (не|ну)жная монада Either на практике и в теорииYouTube
Ближайшая конференция:
HolyJS 2022 Spring — 8-10 июня.
Подробности и билеты: https://bit.ly/3A5ruLp
— —
. . Обработка ошибок в JavaScript — один из самых спорных вопросов. Почти на каждой конференции предлагают новые архитектуры и паттерны для решения этой проблемы. Разбираясь в предметной области, часто наталкиваешься на слово на букву «М». Артём и Дмитрий расскажут об опыте и причинах внедрения монад в продакшн.
SamboRulit 2022-06-27 11:29:30
vuejs_ru-1086942.jpg
Здравствуйте.
Если кто-то в курсе, прошу подсказать:)

С какой целью тут прикручен
emits:[…]

Сообщу смысл этого куска кода: он передаёт событие клика (это видно из $this.emit…. ) в родителя

Удивляет то, что мне не известно назначение emits:[….], т.к. в methods ‘e уже все данные для передачи есть с избытком.

YuryDmitriev 2022-06-27 11:32:25
Он объявляет какие есть эвенты у компонента.
YuryDmitriev 2022-06-27 11:32:33
SamboRulit 2022-06-27 11:29:30
Здравствуйте.
Если кто-то в курсе, прошу подсказать:)

С какой целью тут прикручен
emits:[…]

Сообщу смысл этого куска кода: он передаёт событие клика (это видно из $this.emit…. ) в родителя

Удивляет то, что мне не известно назначение emits:[….], т.к. в methods ‘e уже все данные для передачи есть с избытком.

^

andremartyn 2022-06-27 11:33:22
SamboRulit 2022-06-27 11:29:30
Здравствуйте.
Если кто-то в курсе, прошу подсказать:)

С какой целью тут прикручен
emits:[…]

Сообщу смысл этого куска кода: он передаёт событие клика (это видно из $this.emit…. ) в родителя

Удивляет то, что мне не известно назначение emits:[….], т.к. в methods ‘e уже все данные для передачи есть с избытком.

Vue3?

SamboRulit 2022-06-27 11:39:22
Не знаю, Бро
Этому коду вроде как года два.
Убрал его , работает по- прежнему
zlobinilya 2022-06-27 11:40:05
достойная зп
mattersj 2022-06-27 11:40:30
SamboRulit 2022-06-27 11:29:30
Здравствуйте.
Если кто-то в курсе, прошу подсказать:)

С какой целью тут прикручен
emits:[…]

Сообщу смысл этого куска кода: он передаёт событие клика (это видно из $this.emit…. ) в родителя

Удивляет то, что мне не известно назначение emits:[….], т.к. в methods ‘e уже все данные для передачи есть с избытком.

https://vuejs.org/api/options-state.html#emits

mattersj 2022-06-27 11:40:57
M921070 2022-06-27 11:07:46
Коллеги, попробую еще раз спросить). Как сделать так, чтобы при изменении агрумента composabl-a, менялся его return. Динамически.

передавать в композабл не значение, а реф

SamboRulit 2022-06-27 11:49:25
ass_gram 2022-06-27 10:45:30
Всем привет, посоветуйте хорошие курсы по Vue js

Бро, мне зашли видео:

1).ИльиКлимова с его криптономиконом, и
2). канал GoFrontend с линейным разбором магазина на VueJS.
С этим багажом уже и буду слушать хоть с какими-то пониманием курс Vue на geekbrains:-)

2022-06-27 11:49:43
ass_gram 2022-06-27 10:45:30
Всем привет, посоветуйте хорошие курсы по Vue js

Доку по вью прочел? Всю?

2022-06-27 11:49:59
vuejs_ru-1086954.jpg

mattersj 2022-06-27 11:50:01
SamboRulit 2022-06-27 11:49:25
Бро, мне зашли видео:

1).ИльиКлимова с его криптономиконом, и
2). канал GoFrontend с линейным разбором магазина на VueJS.
С этим багажом уже и буду слушать хоть с какими-то пониманием курс Vue на geekbrains:-)

>курс Vue на geekbrains

соболезную

M921070 2022-06-27 11:52:54
mattersj 2022-06-27 11:40:57
передавать в композабл не значение, а реф

спасибо, сработало! Правда вылезла новая проблема. Возвращаемые значения из функции внутри компонента — undefined. Внутри самой функции — все ок.

mattersj 2022-06-27 11:55:09
M921070 2022-06-27 11:52:54
спасибо, сработало! Правда вылезла новая проблема. Возвращаемые значения из функции внутри компонента — undefined. Внутри самой функции — все ок.

покажи код

M921070 2022-06-27 11:55:56
mattersj 2022-06-27 11:55:09
покажи код

vuejs_ru-1086960.jpg

|