@vuejs_ru

Страница 3001 из 3900
Stas
31.05.2018
19:50:35
Карты асинхронно грузишь?
не знаю, я ничего не указывал брал готовый компонент

Женя
31.05.2018
20:54:39
Ребят, кто-нибудь сталкивался с таким? Короче, микрочелик собирает шаблон на пхп (вордпресс), формирует данные в виде джейсонов и вставляет их в прупсы компонентов.

Страта рабочая?



Google
Victor
31.05.2018
20:58:34
жуть

Denis
31.05.2018
20:58:44
мощно

Женя
31.05.2018
20:59:33
я изучу подробнее эту систему

Denis
31.05.2018
20:59:35
Разделить пыху и vue видимо не догадался..

Женя
31.05.2018
20:59:40
устрою курс бест практикс

Victor
31.05.2018
21:00:13
по-хорошему, в WP версии от 4.7 и выше есть REST API

так что вполне можно Vue фронт сделать нормально

Женя
31.05.2018
21:02:17
да, но он не знал про это и свои апишки написал

Леха
31.05.2018
21:23:12
Страта рабочая?
Вы буквы экономите? Страта... ?

Женя
31.05.2018
21:24:15
Вы буквы экономите? Страта... ?
а вы часом не из деревни? ?

Леха
31.05.2018
21:24:38
Женя
31.05.2018
21:25:20
Нет ?
Извините, я предположил такое исходя из вашей реакции на новые для вас сокращения

Леха
31.05.2018
21:30:17
Все норм, я просто ворчун ?

Google
Vlad
31.05.2018
21:53:46
Если просто нужно метки поставить то пойдёт , что то сложнее - сам пиши

Victor
01.06.2018
04:55:25
Привет, товарищи. Использую Vuex, но дополнительно применил EventBus для отслеживания протухания токенов, насколько это плохо и как сделать правильно? Суть в следующем. В SPA реализовал авторизацию по двум токенам jwt: - accessToken - для авторизации во всех запросах к API, живёт час; - refreshToken - для получения нового accessToken, живёт сутки. 1) username, password => POST /api/v0.1/auth/login => accessToken, refreshToken 2) в мутациях токены сохраняются в state, при этом творится такое безобразие: setAccessToken (state, { accessToken }) { state.jwt.accessToken = accessToken setTimeout( ( ) => { EventBus.$emit('accessTokenExpired') }, getTimeout(accessToken) - 1000 ) } 3) в App.vue слушаю accessTokenExpired: mounted ( ) { EventBus.$on('accessTokenExpired', ( ) => { this.$store.dispatch('auth/refreshAccessToken') }) ... 4) и в action refreshAccessToken запрашиваю новый accessToken, далее - снова п. 2. 5) Для проверки аутентифицирован ли пользователь есть: const getters = { isAuthenticated: state => isValidJwt(state.jwt.accessToken), ... } В App.vue в watch отслеживается и isAuthenticated и при false происходит роут на /login. В такой схеме accessToken обновляется до того, как протухнет, а после протухания refreshToken пользователь должен снова залогиниться. Как избавиться от хака с setTimeout и EventBus и сделать это грамотно?

Кто-то может сказать, как это сделать лучше, или поделиться репозиторием?

Pasha
01.06.2018
05:19:57
Какой-нибудь axios.interceptors

Victor
01.06.2018
05:29:59
Какой-нибудь axios.interceptors
А чисто на Vue + Vuex, вне зависимости от попыток обращений к API? Мы итак знаем, когда истечёт токен, нужно обновлять его или разлогинить пользователя, когда refreshToken просрочен.

Denis
01.06.2018
05:44:50
А как вы хотите отсчитывать время без использования setTimeout?

Victor
01.06.2018
05:45:17
Denis
01.06.2018
05:45:45
А как вы узнаете, что он протух? Тут либо таймаут задавать по времени, либо дергать по setInterval периаодически и проверять

Victor
01.06.2018
05:46:03
Можно же отслеживать isAuthenticated

Denis
01.06.2018
05:46:52
А как он у вас поменяется?

Victor
01.06.2018
05:47:33
А как он у вас поменяется?
А он обязательно должен измениться?

Denis
01.06.2018
05:47:43
Ну иначе вотчер не среагирует

Victor
01.06.2018
05:48:57
Правильно я понимаю, что можно оставить setTimeout и в нём дергать мутацию?

Denis
01.06.2018
05:49:04
Я правильно понимаю, что вы хотите отслеживать изменение переменной, которая должна каким-то образом без периодических проверок и таймаутов сама узнать, что должна измениться?

Victor
01.06.2018
05:49:06
Без шины событий?

Denis
01.06.2018
05:49:37
Во Vuex есть actions, которые как раз созданы для асинхронного изменения стейта

Victor
01.06.2018
05:50:58
Я правильно понимаю, что вы хотите отслеживать изменение переменной, которая должна каким-то образом без периодических проверок и таймаутов сама узнать, что должна измениться?
Нет, должна отслеживаться валидность токена, и только в случае невалидности он будет заменён. То есть действительно для реактивности там меняться нечему.

Denis
01.06.2018
05:53:01
А, я понял. Вы от шины хотите избавиться и реализовать то же самое чисто на Vuex?

Вас не таймаут смущает))

Google
Victor
01.06.2018
05:54:43
Вас не таймаут смущает))
Да, я ведь так и написал в самом вопросе. Сам таймаут тоже смущает, но без него никак, похоже.

А в мутациях нельзя/не принято дёргать действия?

Denis
01.06.2018
05:56:11
Ну так просто сделайте setAccessToken экшеном

В нем в таймауте дергайте мутацию

А в приложении подпишитесь на поле стейта, которое меняется

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

Kazakbala
01.06.2018
05:57:34
computed переменную можно использолвать в другой computed переменной (обработать) если да, то как достучаться до них?

Victor
01.06.2018
05:57:50
В нем в таймауте дергайте мутацию
Спасибо, с Вашей помощью понял, где накосячил) А как подписаться? watch или что-то другое?

Kazakbala
01.06.2018
05:58:21
Kazakbala
01.06.2018
05:58:47
спасибо

Denis
01.06.2018
05:59:06
а как достучаться? this.foo?
computed: { foo() { return this.dataField; }, bar() { return this.foo * 20 } }

Amir
01.06.2018
06:35:02
Люди подскажите VUEX Вобщем что-то не сообразю как порядок экшненов сделать Вобщем у меня такая логика При загрузке приложения, запускается определенный экш который заполняет поля в VUEX state, скажем actionInit последом, в зависимости какой action выбран запускается другой actionServices например, у которого данные конечно зависят от actionInit Коллизия происходит когда пользователь скажем в браузере нажал F5 Обновить в этом случае почему то actionInit запускается позже actioninit забинден в компоненте account.vue on mounted actionServices забинден в компоненте servcies.vue on mounted И все это завернуто в vue-router

Almaz
01.06.2018
06:38:56
к каким негативным последствиям может привести такая схема использования? <div id="vue-app"> <subscription-state></subscription-state> <div id="vue-admin"> <moderation></moderation> </div> <script src="/Scripts/bundle/vue-admin.js"></script> </div> <script src="/Scripts/bundle/vue-app.js"></script>

пока что только в коносле ошибка, что внутри div vue-app тег script

но на работоспособность в целом никак не влияет

Amir
01.06.2018
06:40:59
ты нарушаешь фэн-шуй

Google
Amir
01.06.2018
06:41:29
заставляешь вью онанизмом заниматься

Almaz
01.06.2018
06:42:06
это что бы не пихать компоненты админки в один js с компонентами из шапки

Amir
01.06.2018
06:42:28
ну а паки для чего

Almaz
01.06.2018
06:42:52
это что?

Amir
01.06.2018
06:44:09
а ниче, я вопроса твоего не понял :)

Almaz
01.06.2018
06:47:13
Есть шапка которая используется на всех страницах сайта, и есть, допустим, страница админки. Чтобы js шапки не был громоздким, делаю отдельный js для админки

Admin
ERROR: S client not available

Amir
01.06.2018
06:49:00
может срипт вынеси вне 1 блока да и все

Denis
01.06.2018
07:15:33
А есть какие-то проблемы с тем, чтобы скрипт админки притащить динамическим импортом внутри приложения?

Нафига в разметку-то тащить?

Игорь
01.06.2018
07:47:19
Судари, пытаюсь в store.js импортировать модуль из соседней папки, но получаю ошибку. В чем дело?



Andrey
01.06.2018
07:48:41
../

Игорь
01.06.2018
07:49:09


бля опять объебос на сраных путях)

хотя не



и самое главное



Andrey
01.06.2018
07:53:58
если const

Google
Andrey
01.06.2018
07:54:07
делай дестракцию

import {Auth...} from ...

Владимир Калинин
01.06.2018
07:55:21
ругается же на vue/types/index

Andrey
01.06.2018
07:56:14
ну правильно в индекве не находит то что ты там ищещь

Владимир Калинин
01.06.2018
07:56:43
да и вообще кажется ты в js пытаешься импортнуть ts

Andrey
01.06.2018
07:56:54
кароче пиши import {AuthModule} from './Modules/Auth'

Владимир Калинин
01.06.2018
07:56:57
вебпак ищет vue/types/index.js и не надохит

Andrey
01.06.2018
07:57:45
если один тогда объявляй как один

не export const a export default

Владимир Калинин
01.06.2018
07:58:23
так вот же, так и есть

и этот импорт у него проходит

а ругается на попытку на който фиг index.ts импортнуть

Дмитрий Maestro
01.06.2018
08:02:14
ребят подскажите пожалуйста можно ли по эвенту с одного компонента опрашивать другие компоненты ?

есть три компонента

и есть родительский

один из компонентов бросает евент

можно ли как то два других дочерних опросить на предмет поменялось ли там что то ?

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