
Rafael
04.01.2017
19:12:25
ух, спасибо, а то документация довольно бедна на эту тему

Illya
04.01.2017
19:13:25
Осторожно, градус наркомании в коде 6 по пятибальной :)

Rafael
04.01.2017
19:13:32
:NavigationGuard что это?

Illya
04.01.2017
19:13:35
Мои вкусы весьма специфичны

Google

Illya
04.01.2017
19:13:42
Это flow
Строгая типизация в js
Игнорируй :)

Rafael
04.01.2017
19:15:25
даже такой кусочек кода открыл мне глаза, я то думал что пихнув 1 раз в конструктор vue само хранилище оно будет изменяться локально, только внутри инстанса vue
хмм
а почему IS_LOGGED_IN заделал как константу?

Illya
04.01.2017
19:16:43
Чтобы не думать о конфликтах имён в разных модулях vuex
Все геттеры со всех модулей вливаются в store.getters
И мало ли какой программист захочет назвать свой геттер к примеру table или data
Залог успешного проекта - жёсткая диктатура со стороны кодстайла

Alex
04.01.2017
19:37:43
А от нытия коллег от жёсткой диктатуры по кодстайлу есть варианты отделаться? ?

Михаил
04.01.2017
19:39:58
Залог успешного проекта - жёсткая диктатура со стороны кодстайла
скажи пожалуйста, я предполагаю, что ты мониторишь рынок и требования заказчиков, можно ли ждать от ву такой же популярности как от реакта или нг ? Просто, сейчас ухожу от ng1 и думаю куда податься, есть реакт, а есть - ву. Компания хочет реакт, и я готов с этим смириться, но сердце хочет vue )
Я верю в него по трем причинам: 1)пост Evan`а о темпах развитя за 2016, 2) доклад Листочкина 3)порыв души и сердца.
Что думаешь по этому поводу ?

Illya
04.01.2017
20:08:18

Google


Illya
04.01.2017
20:11:34
скажи пожалуйста, я предполагаю, что ты мониторишь рынок и требования заказчиков, можно ли ждать от ву такой же популярности как от реакта или нг ? Просто, сейчас ухожу от ng1 и думаю куда податься, есть реакт, а есть - ву. Компания хочет реакт, и я готов с этим смириться, но сердце хочет vue )
Я верю в него по трем причинам: 1)пост Evan`а о темпах развитя за 2016, 2) доклад Листочкина 3)порыв души и сердца.
Что думаешь по этому поводу ?
Мониторю. Мое мнение что популярность ву будет сильно меньше реакта. В основном потому что реакт уже достиг плато продуктивности, а ву нет. Так же потому что мы увидим эффект "победитель забирает все", а ву останется (по моим оценкам) #3 после реакта и нг2 (хотя мне он ужасно не нравится)
В то же время я верю что ву позволяет решать бизнес-задачи быстрее и продуктивней именно в сфере аутсорсинга (начиная от порога вхождения для джуниоров и заканчивая более "очевидной" экосистемой), а это значит что спрос на ву разработчиков будет и по моим ожиданиям именно в силу меньшей популярности технологии они будут стоить дороже
Мы с Андреем на Speaker Corner'е на последнем MostJS Frameworks Day хвалили Ву. Там было забавно - сидело 5 спикеров на сцене, из них 4 включая меня хайпили Ву


Rafael
04.01.2017
20:20:10
хм, что-то у меня вылетает с ошибкой:
у меня есть страничка с авторизацией и я хочу редиректнуть на главную страцу если авторизация прошла успешна:
у меня есть геттер isAuthorised
есть метод у компоненты:
goToApps () {
if (this.isAuthorized) {
this.$router.push({name: 'apps'})
}
}
и редирект осуществлятся через:
watch: {
'isAuthorized': 'goToApps'
},

Михаил
04.01.2017
20:20:56
а зачем вотчер?

Illya
04.01.2017
20:21:03
похоже что this отваливается
судя по ошибке

Rafael
04.01.2017
20:21:34

Михаил
04.01.2017
20:22:05
я всегда думал, что должен висеть хук на роутере и при каждом изменении роута чекать авторизацию и тогда уже редиректить куда нужно

Illya
04.01.2017
20:22:10
а вообще для этого сценария я бы использовал lifecycle методы или роутинг
а вотчеры это как-то so angular :)

Rafael
04.01.2017
20:23:35
но погодите, я не понимаю как то, что вы предлагаете мне поможет, мне же все равно нужно сначала заставиь редиректнуться куда-нибудь
как это сделать если не через watcher?

Михаил
04.01.2017
20:23:56
у тебя есть роутер?

Rafael
04.01.2017
20:24:02

Михаил
04.01.2017
20:24:11
знаешь что такое lifecycle ?

Illya
04.01.2017
20:24:12
я так понимаю авторизация выполняется попапом
и может быть с любой страницы

Rafael
04.01.2017
20:24:21

Михаил
04.01.2017
20:24:29
у роутера тоже самое почти
хуки иные просто

Rafael
04.01.2017
20:24:42

Google

Михаил
04.01.2017
20:25:07
ты можешь дергать хук на каждое изменение роута и смотреть авторизован ли пользователь, если нет - редирект на логин пейдж

Illya
04.01.2017
20:25:17
это не покрывает сценарий попапа
пардон, отошел на пару часов

Михаил
04.01.2017
20:25:33
почему же ?
А
понял

Rafael
04.01.2017
20:26:44
тогда как делать?
документация по хукам ужасна, откуда вы черпали знания?
вот например, как использовать гловальный хук в компоненте? откуда берутся параметры хука?
или это там все как-то автоматически подставлется, в чем я сильно неуверен

Михаил
04.01.2017
20:34:12
тебе не нужно использовать хук в компоненте

Rafael
04.01.2017
20:34:36
хорошо, тогда какое условие заставит редиректнуться?

Михаил
04.01.2017
20:34:53
http://router.vuejs.org/ru/advanced/navigation-guards.html

Rafael
04.01.2017
20:34:55
вот с watch все понятно: переменная изменилась - вызвалась функция

Михаил
04.01.2017
20:35:07
это если сейчас говорить про роутинг и без попапа
у тебя есть beforeEach

Rafael
04.01.2017
20:35:34

Михаил
04.01.2017
20:36:25
ты там дёргаешь стор, например, чекаешь залогинен ли юзер, если нет делаешь редирект

Rafael
04.01.2017
20:38:14
как мы подставляем туда аргументы to, from, next?

Михаил
04.01.2017
20:38:30
to - роут куда идет переход

Google

Михаил
04.01.2017
20:38:43
from - роут откуда идет переход

Rafael
04.01.2017
20:39:35

Михаил
04.01.2017
20:39:55
next - запускает следующий хук
а ты ничего
туда не можешь передать

Rafael
04.01.2017
20:40:59
так так, вроде начинаю догонять

Михаил
04.01.2017
20:41:03
это автоматическая функция, которая вызывается каждый раз, когда меняется твой роут
глупо звучит
но примерно так если на пальцах)

Admin
ERROR: S client not available

Rafael
04.01.2017
20:41:09
ща попробую это реализовать

Михаил
04.01.2017
20:41:36
у тебя хук например created в компоненте вызывается каждый раз при рендере, хуки в роутере вызываются каждый раз при роутинге

Rafael
04.01.2017
20:43:30
т.е типо почему он работает именно так
а почему у Ильи:
https://gist.github.com/xanf/771ad7fddfce688bbc29b1a0964e23f5
переход на новую ссылку осуществялется через push, а не через next?

Михаил
04.01.2017
20:46:06
Ты путаешь переход на ссылку
или на следующий хук
Илья редиректнул своего юзера на Login и потом обозначил, что дальше можно не юзать хуки, если же юзер залогинен он юзает next()

Rafael
04.01.2017
20:48:14
а, понял
так, я не понял последнюю вещь:
почему у него в коде импортится хранилище, а не используется хранилище, которое было передано при инициализации инстанса vue?

Google

Rafael
04.01.2017
20:50:18
если он сделает такие импорты в разных файлах, он ведь получит несколько различных хранилищ, а не копии одного

Михаил
04.01.2017
20:51:29
это хороший вопрос

Rafael
04.01.2017
20:51:58
тоже самое про роутер
я думаю что-то не то
кароч, допустим я нахожусь на страничке авторизации: я успешно авторизировался и хочу редиректнуть пользователя на какую-нибудь страничку, как это сделать?

Alex
04.01.2017
21:08:54
router.push({ path: 'home' })
или куда там хочется
можно .replace чтобы не осталась авторизация в истории

Rafael
04.01.2017
21:09:43

Alex
04.01.2017
21:10:05
router.beforeEach((to, from, next) => {
if (!store.state.auth.status) {
next({ path: '/login' })
} else {
next()
}
})
что-то типа такого в корне делать надо будет, когда все инициализируешь
тогда при каждой смене роута будет выполняться проверка

Rafael
04.01.2017
21:10:57

Alex
04.01.2017
21:11:30
const router = new VueRouter({
routes // short for routes: routes
})
Перед инициализацией Vue пока еще с роутером возишься будет
если не всегда, то доп. проверку добавлять, например через meta

Rafael
04.01.2017
21:12:31
т.е meta работает как if?

Alex
04.01.2017
21:13:45
в meta как я понял можно пихать всё что тебе захочется и нужно будет