@vuejs_ru

Страница 3601 из 3900
Roman
08.09.2018
16:29:02
дальше не смотрел

уже параша

Alexey
08.09.2018
16:29:12
запросы смешаны с логикой
ну так там нужно условие..

Alex
08.09.2018
16:29:15
Это все не будет работать в принципе

Google
Alex
08.09.2018
16:29:22
Потому что ничего функция не возвращает

Alexey
08.09.2018
16:29:46
Это все не будет работать в принципе
кстати работает.. приведи пример как бы переписать?

Alex
08.09.2018
16:29:55
Добавит return

Alexey
08.09.2018
16:30:11
Alex
08.09.2018
16:30:15
Return Promise.all...

Alexey
08.09.2018
16:30:48
Return Promise.all...
а... ну оно не надо там..

я ее вызываю прость await

Alex
08.09.2018
16:31:12
И это не работает

Alexey
08.09.2018
16:31:13
а результат мне ее во вне не нужен

Alex
08.09.2018
16:31:32
Точнее это не правильно

Await не нужен если функция не вернёт промис твой

Разберись что такое async await

Серьезно

Google
Alex
08.09.2018
16:32:11
Это всего лишь сахар

Alexey
08.09.2018
16:32:13
Await не нужен если функция не вернёт промис твой
согласен.. можно ее и так вызывать

тк не возвращает promise да и вообще ничего

Alex
08.09.2018
16:32:40
Вот именно

Она undefined возвращает

Alexey
08.09.2018
16:33:04
да это баг... а как в целом все компактнее сделать?

Alex
08.09.2018
16:33:14
Вынести запросы оттуда

Сделай типо сервиса

Который будет апи для запросов

Один запрос - один метод

И уже в твоей функции дергай именно методы эти

Alexey
08.09.2018
16:34:08
Вынести запросы оттуда
может просто в отдельные actions

Alex
08.09.2018
16:34:19
Можно и в actions

Но неудобно будет переиспользовать

Если нужно будет ещё где то запрос сделать

Такой же

Alexey
08.09.2018
16:34:55
то дергать этот action

Alex
08.09.2018
16:35:02
Не семантичный)

Логика работы с бэком отдельно

Бизнес логика стора отдельно

Google
Alexey
08.09.2018
16:35:38
чуть чуть излишне думаю.

Alex
08.09.2018
16:35:51
Это просто рекомендуемый паттерн

Alexey
08.09.2018
16:35:51
что ты предлагаешь вынести в func

тока axios

Бизнес логика стора отдельно
ну просто вижу что пока лишнее

Alex
08.09.2018
16:36:27
Пока да

Но если рассчитывается что потом приложение будет расти то обязательно надо

Alexey
08.09.2018
16:37:00
расти если то не в этом)

Alex
08.09.2018
16:37:10
Работы по времени много не увеличит

Alexey
08.09.2018
16:37:19
мне счас нужно чисто аккуратно..

Alex
08.09.2018
16:37:19
Так что почему бы сразу не разделить сущности

Alexey
08.09.2018
16:37:26
переписать успею..

Alexey
08.09.2018
16:37:30
думаю так.

Alex
08.09.2018
16:37:35
Дело твоё )

Мое дело предложить

Alexey
08.09.2018
16:37:45
promise.all дергать в компоненте

запросы в отдельные actions

Дело твоё )
но грубых ошибк кроме НЕ return нет?

в отдельный js файл только axios.get без содержимого then

так красиво считаешь?

Google
Alexey
08.09.2018
16:41:35
и будет типа getServers.then() в store?

а его уже в all ?

Егор
08.09.2018
16:43:16
подскажите плз, у меня тривиальная ситуация - надо при загрузке компонента загружать данные с апи, работает если дергать хук created. Я щас раскуриваю vuex и хочу использовать для этих целей mapActions

но на него никакой реакции нету, даже если запихнуть его в computed

так вот, нормально ли юзать в данном случае created, или реально сделать красивое решение с mapActions?

Vlad
08.09.2018
16:52:31
но на него никакой реакции нету, даже если запихнуть его в computed
Куда ты там что запихиваешь? Map actions тебе ссылку на экшн стора создаст. В created дергай этот экшен

Егор
08.09.2018
16:54:30


Admin
ERROR: S client not available

Егор
08.09.2018
16:54:51
в данном случае данные подгружаются и без computed и mapActions

Vlad
08.09.2018
16:55:54
в данном случае данные подгружаются и без computed и mapActions
Ты обращаешься напрямую к стору. А map actions тебе метод компонента создаст. this.getProducts()

Егор
08.09.2018
16:56:24
кажется понял, спасибо

Александр
08.09.2018
17:26:23
может дать кто совет, если у меня форма состоит из 5 шагов(spa) я использую роутер для каждого шага, как мне быть с данными которые нужно потом отправить на сервер? мне все во vuex сохранять и в последнем шаге отправлять?

Александр
08.09.2018
17:39:34
получается обхожу нативную отправку формы

Alex
08.09.2018
17:40:05
Именно

Но так ты можешь всегда восстановить данные формы на каждом шагу

Даже если страницу обновить

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

Александр
08.09.2018
17:42:07
спасибо

Google
Alexey
08.09.2018
18:11:19
Чекните как переписал

async getDefaultsTest({ commit, getters, dispatch }) { console.log("getDefaults") try { await Promise.all([ new Promise((resolve, reject) => { if (getters["settings/app_settings"]) { resolve() } else { console.log("need settings_get") return this.$axios .$get("settings_get") .then(result => { console.log("settings get ok") commit("settings/SET_APP_SETTINGS", result.appSettings) resolve() }) .catch(err => reject(err)) } }), new Promise((resolve, reject) => { if (getters["configure/servers"]) { resolve() } else { console.log("need servers_get") return this.$axios .$get("servers_get") .then(result => { console.log("servers get ok") commit("configure/SET_SERVERS", result.servers) resolve() }) .catch(err => reject(err)) } }) ]) console.log("promise all end") } catch (err) { const error_msg = err.response && err.response.data ? err.response.data : err throw new Error(Request error. ${error_msg}) } }

async getSettings({ commit, getters }) { console.log("getSettings") if (!getters["settings/app_settings"]) { const { appSettings } = await this.$axios.$get("settings_get") console.log("settings get ok") commit("settings/SET_APP_SETTINGS", appSettings) } }, async getServers({ commit, getters }) { console.log("getServers") if (!getters["configure/servers"]) { const { servers } = await this.$axios.$get("servers_get") console.log("servers get ok") commit("configure/SET_SERVERS", servers) } } ...... async fetch({ route, app, store }) { try { await Promise.all([store.dispatch("getSettings"), store.dispatch("getServers")]) } catch (err) { const error_msg = err.response && err.response.data ? err.response.data : err throw new Error(Request error. ${error_msg}) }

и не надо then() catch() и new Promise

@AlexShepard89 теперь норм, кроме того что сам axios вынести?

John
08.09.2018
18:13:56
Мусор какой-то

Alexey
08.09.2018
18:14:13
что теперь можно сократить?

чуток еще подправил

ну а как правильно если нужно заполнять store несколькими паралельными запросами?

Alex
08.09.2018
18:27:49
Пиши код в каком нибудь сервисе позволяющем расшарить его

Мне с телефона адово сложно читать )

А вообще найди на гитхабе просто проекты и посмотри на полную картинку

Оптимизировать одну функцию вне контекста задачи как то бесполезно )

Если бы ты работал в команде то согласовал бы стиль кода с ней

А для себя хреначь и делай выводы сам что удобно а что нет

Толку если я к примеру скажу как делать но ты не найдёшь собственные выводы о пользе

Alexey
08.09.2018
18:39:13
я смотрел.. тут все таки своя задача и не совсем тривиальная.. fetch этот часть картинки..



Страница 3601 из 3900