Андрей
Можно как-то из компонента (который в src находится) изменить данные в app.vue?
Андрей
$emit и $on вроде не подходит для этого дела
Anonymous
$bus
Anonymous
если vuex нет
Victor
Victor
Тогда уж реально Vuex
Anonymous
А типо APP как бы и не знает
Anonymous
он просто по шине получает эвент
Anonymous
очень очень узкий и тупой vuex
Андрей
Я использую vuetify и у меня в app есть toolbar. Я хочу чтобы после авторизации у меня менялись пункты toolbar(а)
Андрей
Может я вообще не так делаю?
Андрей
И я не использую vuex
Victor
очень очень узкий и тупой vuex
Это типа который
export const $bus = new Vue();
ИМХО это подходит только для небольших приложений, а то при разрастании кода все эти потоки сообщений станут неуправляемыми
Anonymous
да я знаю что это очень очень хауноу но блин.
Anonymous
иногда выручает
Андрей
Anonymous
Vuex
Rafael 🌵
А как быть тогда?
Я бы пока посылал 2 одинаковых запроса из разных компонент
Anonymous
ну либо пробрасывай до самого аппа емиты
Rafael 🌵
А не внедрял vuex
Victor
Ну у тебя как бы 3 варианта:
1. $emit по цепочке
2. $bus
3. vuex
Victor
Выбирай
Андрей
1 не работает
Андрей
3 не вариант
Victor
Почему?
Андрей
2 хз
Rafael 🌵
Теперь поясняю почему: vuex это когда МНОГО (не 2) компонент нуждаются в одиночку и тех же данных
Андрей
Почему?
Не на столько хорош во вью чтобы сказать
Rafael 🌵
Андрей
Но ведь это не норм
Rafael 🌵
Victor
Дочерний компонент ничего не должен знать о вышестоящих компонентах, включая app.vue
Victor
Так что у тебя выбор не между плохо и хорошо, а между плохо и еще хуже
Андрей
Андрей
А на счёт запросов. Получается мне при кажом изменении урла делать гет запрос?
Victor
Ты ж сказал, что это не вариант
Андрей
Андрей
Метод в app вообще не вызывается из компонента
Victor
и не должен
я ж говорю - по цепочке
Victor
ты должен делать $emit - on на КАЖДОМ уровне
Андрей
Ладно, а есть какие ещё варианты как изменить toolbar в app?
Андрей
Неужели данные которые есть в app - остаются только в app?
Victor
Авторизация как делается?
Victor
websanova ?
Андрей
Нет
Андрей
Делается как понимаю вообще через жопу с помощью бека и сессий
Victor
Ну как вариант можешь запилить плагин, по аналогии с vue-auth
Тогда ты делаешь Vue.use и у тебя в глобальном объекте будет доступно нечто, что совершает авторизацию
И тогда ты из любого места сможешь его вытягивать
Victor
Примерно вот так: https://github.com/websanova/vue-auth/blob/master/src/index.js
Michael
народ помогите как вывести обьект json в теплэйт
Michael
Victor
После такой инициализации у тебя в любом компоненте будет доступно this.$auth
Андрей
Victor
Да, где-то так
Victor
Но некоторые выступают против засорения прототипа Vue
Victor
Типа это плохо
Victor
Но как я уже сказал, ты из-за нежелания использовать vuex, выбираешь между плохо и еще хуже
Victor
Victor
Ты парсишь json в локальную переменную
Victor
Ее никто так не увидит
Андрей
Victor
Всего кода я не вижу, но думаю, что тебе нужно делать this.list = JSON.parse(response)
Андрей
Хотя ещё не знаю как отличить маленький и большой проекты
Victor
Но на самом деле Vuex сам по себе это и есть глобальная переменная, да еще и singleton :)
Victor
Так что так или иначе тебе придется юзать глобальные переменные
Андрей
Понял, принял, спасибо. Завтра уже буду думать
Victor
ага
Michael
из create() в data()
Victor
что-то типа
data() {
return {
list: [],
};
}
created() {
axios.get().then(function (response) {
this.list = JSON.parse(response);
});
}
Victor
Это схематически
Victor
Так как list реактивен, то после его изменеия список должен сам отрендериться
Michael
ага попробую сейчас
Michael
this для чего она там?
Michael
Разобрался)
Никита
Кто-нибудь юзает vee-validate? Как там нормально с автоматическими классами работать?
Никита
На форме сразу всё инвалидировано при старте
Vitalii
https://github.com/vuejs/roadmap
Vitalii
значимая штука