@vuejs_ru

Страница 2850 из 3900
Alex
09.05.2018
11:04:42
не корректно так говорить

Denis
09.05.2018
11:04:44
На беке жава с микросервисами... Еедпоинтов вагон

Alex
09.05.2018
11:04:47
иногда можно вывести и частично

и параллельно ретраить те что упали

Google
Denis
09.05.2018
11:04:56
В моем случае нет

Alex
09.05.2018
11:05:07
пиши прослойку на ноде

Denis
09.05.2018
11:05:09
Для работы с моделью нужен десяток работающих ендпоинтов

Alex
09.05.2018
11:05:15
которая будет фасадом над микросервисами

Denis
09.05.2018
11:05:22
По этому кейс с половиной рабочих инпутов не рассматриваю

Alex
09.05.2018
11:05:24
и возвращать нужные модели

Denis
09.05.2018
11:05:47
Зачем?

Чтобы клиент в 1 ендпоинт стучал?

Микросервисы и так нужные модели возвращают

Alex
09.05.2018
11:06:38
да, что б дергать 1 ендпоинт

и не тащить на клиент архитектуру бэка

плюс адапторы же будут

такие преобразования дешевле на сервере делать

Google
Denis
09.05.2018
11:07:09
Ну хз, такое себе предложение

Мне удобно иметь возможность рулить порядком запросов

Alex
09.05.2018
11:07:22
так делают в проде многие

в случае с микросервисами

Denis
09.05.2018
11:07:36
Ща покажу портянку

Которая мне не нравится

Alex
09.05.2018
11:08:03
http://caolan.github.io/async/ и вот это для организации запросов с ретраями удобно

еще момент - 1 запрос с клиента vs пачка

на ноде ты потом кеширование тоже можешь сделать

Denis
09.05.2018
11:08:51
const Campaign = { namespaced: true, state: { browsers: [], deviceTypes: [], platforms: [], categories: [], creatives: [], countries: [], usagetypes: [] }, actions: { loadBrowsers ({ commit }, payload) { return new Promise((resolve, reject) => { API({ method: 'GET', url: '/api/campaign/browser' }).then(response => { commit('setBrowsers', response.data.slice(0,50)); resolve(response.data); }).catch(err => reject(err)) }); }, loadDeviceTypes ({commit}, payload) { return new Promise((resolve, reject) => { API({ method: 'GET', url: '/api/campaign/device-type', }).then(response => resolve(commit('setDeviceType', response.data))) .catch(err => reject(err)) }); }, loadPlatform ({commit}, payload) { return new Promise((resolve, reject) => { API({ method: 'GET', url: '/api/campaign/platform', }).then(response => resolve(commit('setPlatform', response.data))) .catch(err => reject(err)) }); }, loadCategories ({commit}, payload) { return new Promise((resolve, reject) => { API({ method: 'GET', url: '/api/category', }).then(response => resolve(commit('setCategories', response.data))) .catch(err => reject(err)) }); }, loadCreatives ({commit}, campaignId) { return new Promise((resolve, reject) => { API({ method: 'GET', url: '/api/campaign/'+campaignId+'/creative', }).then(response => resolve(commit('setCreatives', response.data))) .catch(err => reject(err)) }); }, loadCountries ({commit}, payload) { return new Promise((resolve, reject) => { API({ method: 'GET', url: '/api/campaign/country', }).then(response => resolve(commit('setCountries', response.data.map(c => c.name)))) .catch(err => reject(err)) }); }, loadUsageTypes ({commit}, payload) { return new Promise((resolve, reject) => { API({ method: 'GET', url: '/api/campaign/usage-type', }).then(response => resolve(commit('setUsageTypes', response.data))) .catch(err => reject(err)) }); } }, mutations: { setBrowsers (state, browsers) { state.browsers = browsers; }, setDeviceType (state, devicetype) { state.deviceTypes = devicetype; }, setPlatform (state, platforms) { state.platforms = platforms; }, setCategories (state, category) { state.categories = category; }, setCreatives (state, creatives) { state.creatives = creatives; }, setCountries (state, countries) { state.countries = countries; }, setUsageTypes (state, usagetypes) { state.usagetypes = usagetypes; } }, getters: { browsers: state => state.browsers, platforms: state => state.platforms, deviceTypes: state => state.deviceTypes, categories: state => state.categories, countries: state => state.countries, usagetypes: state => state.usagetypes, } } export default Campaign;

Alex
09.05.2018
11:08:54
если апи поменяется

Alex
09.05.2018
11:08:59
то быстрее поменять на ноде тоже

Denis
09.05.2018
11:09:04
Кусочек портянки)

Alex
09.05.2018
11:09:19
Почему дешевле?
потому что клиентская тачка может быть любой

вынеси все запросы для начала в сервис

и оттуда их дергай

передавая callback'и

Rafael
09.05.2018
11:10:05
потому что клиентская тачка может быть любой
С таким подходом, кажется проще ssr мутить

Denis
09.05.2018
11:10:11
API это инстанс axiosa

Google
Alex
09.05.2018
11:10:24
и?

Denis
09.05.2018
11:10:28
Мне бы это сократить

А ты предлагаешь к портянки ещё портянку

Alex
09.05.2018
11:10:58
import api from './service.js api.foo(cb, errorCb)

разделяй запросы от логики сторов

Denis
09.05.2018
11:11:45
Это оверхед на мой взгляд

Alex
09.05.2018
11:11:53
ты спросил - я ответил

Denis
09.05.2018
11:12:00
Ну будет сервис файл в котором запросы которые импортируются потом в экшны

Я спросил как укоротить, реально ли

Alex
09.05.2018
11:12:25
убрать все запросы на ноду

и дергать с нее 1 запрос

Rafael
09.05.2018
11:12:48
Denis
09.05.2018
11:12:51
А если мне в разном порядке нужно будет что-то? Или что-то отдельно дёрнуть?

Alex
09.05.2018
11:12:51
это все решения, которые масштабируются удобно

Denis
09.05.2018
11:13:02
Плодить на ноде обретки запросов?

Alex
09.05.2018
11:13:07
яндекс так живет

авито так живут

Artyom
09.05.2018
11:13:18
ребят, подскажите, плз. Есть ли в vue/vue-router'e функция, которая на вход принимает объект и возвращает URL строку с параметрами?

Rafael
09.05.2018
11:13:33
яндекс так живет
У них в проде нода есть?

Alex
09.05.2018
11:13:38
Google
Rafael
09.05.2018
11:13:42
А чего они gql не юзают?

Denis
09.05.2018
11:13:43
У меня пока мысль только убрать запросы из стора

Alex
09.05.2018
11:13:48
я маркет уже давно на ноде

Denis
09.05.2018
11:13:52
А сгенерировать модели по сваггер доке

Выглядеть будет красиво

Alex
09.05.2018
11:14:03
xscript помер в свое время - на ноду ушли

Denis
09.05.2018
11:14:12
Ну и считай в сервис (модель) унес запрос

Rafael
09.05.2018
11:15:01
xscript помер в свое время - на ноду ушли
Они там целый кластер из них поддерживают?

Alex
09.05.2018
11:15:14
как это в проде крутится

Alex
09.05.2018
11:16:07
там девопс отдел, который уже архитектурой занимается прода

все под замком)

Denis
09.05.2018
11:16:26
авито так живут
Авито на своем вело живут

Alex
09.05.2018
11:16:34
идея таже самая

микросервисы и фасады

Denis
09.05.2018
11:16:39
Видел из доклад?) "8лет без фреймворков")

Google
Artyom
09.05.2018
11:16:43
написать самому - 5 минут)
да понятно, что легко это и самому сделать, просто зачем дублировать код, когда он уже, возможно, имеется. Да надо просто урл строку сформировать из определнных параметров

Alex
09.05.2018
11:16:52
вполне себе велосипеды

бизнес доволен

сейчас успешно бэк из монолита разносят как раз на микросервисы

Denis
09.05.2018
11:17:50
У нас вот тоже бек на микросервисы перелезает)

Rafael
09.05.2018
11:17:55
там девопс отдел, который уже архитектурой занимается прода
Да, да, я помню как там обычных разрабов перекинули в дочку и дали всем лейбл девопсов

Artyom
09.05.2018
11:18:44
this.$router.resolve({...router_obj}).href
Спасибо! Натыкался на эту функцию когда гуглил. Только не могу понять, какой объект на вход туда подать? например, я нахожусь на /foo, надо href /boo?xyz=1. Какой объект туда прокинуть?

Ivan
09.05.2018
11:19:29
думаю как то так {path: '/boo', params:{'xyz':1}}

но вообще зачем, ты же через :to={...obj} это можешь все делать и не писать прямой href в теги

Artyom
09.05.2018
11:21:18
но вообще зачем, ты же через :to={...obj} это можешь все делать и не писать прямой href в теги
{path: 'foo',query: {xyz: 'boo'}} - вот так сработало. Спасибо большое! Надо в новой вкладке открыть просто

Ivan
09.05.2018
11:21:34
ок, как бизнес скажет)

Khabib
09.05.2018
11:24:57
может кто подсказать по данной статейке https://router.vuejs.org/ru/advanced/meta.html у меня всегда вываливается в первый else

код один в один, за исключений наименований путей, вместо /foo стоит /brands

ну и 2ое условие убрал

нашел другой пример, спасибо всем ?

каким образом можно менять App? new Vue({ el: '#app-data', router: router, render: h => h(App) })

Rafael
09.05.2018
11:50:12
new Vue().$mount("#app-data")

Khabib
09.05.2018
12:13:33
извеняюсь, незнаю как правильно задать данный вопрос допустим у нас есть шаблон (где есть шапка, меню и еще чего, + router-view, который меняется при переходах) и есть 2ой шаблон (где нет всего того что есть в первом шаблоне, только один инпут) вот как их можно менять в зависимости от выброного роута

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