@vuejs_ru
Vue.js — русскоговорящее сообщество

Общаемся на темы, посвященные Vue.js и опыту его использования. Проблемы. Новости. Решения. См. также: @js_ru, @react_js, @angular_ru, @nuxtjs_ru Вакансии только тут: @javascript_jobs

3988 members

Архив канала @vuejs_ru 4 января 2017 г.

08:52:30 ДП
User 85413039
User 60331718
Господи, парни, простите за мат, но promises + vuex action ЭТО ОФИГЕННО!

P.s: эмоции чуть-чуть прошли, да и бана не хочется
Например?
10:51:15 ДП
User 60331718
User 85413039
Например?
с помощью промисов я разнес логику работы с хранилищем и логику представлений: всякие красотульки навешиваются в компонентах, а действия над хранилищем вообще не парит, что там будет дальше в компонентах
10:51:36 ДП
User 85413039
покажешь?
10:52:14 ДП
10:52:34 ДП
User 60331718
а это метод у компоненты
10:54:59 ДП
User 60331718
ну не офигенно ли, а?
10:55:57 ДП
User 55423102
А лишний catch зачем пустой
10:56:13 ДП
User 60331718
User 55423102
А лишний catch зачем пустой
о, черт, забыл удалить
10:58:31 ДП
User 55423102
Тогда уж и вынести уведомления об ошибках надо. Чтобы тут не заморачиваться какую библиотеку вызывать и указывать всюду 3000
10:58:38 ДП
10:59:05 ДП
User 60331718
User 55423102
Тогда уж и вынести уведомления об ошибках надо. Чтобы тут не заморачиваться какую библиотеку вызывать и указывать всюду 3000
леень)
10:59:29 ДП
User 55423102
Ну понятное дело) зато бы шум уменьшился, код ещё чище смотреться начнёт
10:59:32 ДП
User 60331718
но вообще да, надо бы сделать такое, чтобы был стек ошибок и он уже выводил по мере их появления
11:01:18 ДП
User 60331718
ай ладно, сделаю потом, когда разберусь с этой авторизацией
11:01:41 ДП
User 60331718
@Kelin2025 ты там спрашивал, что бы такого сложного сделать - сделай авторизацию и страничку настроек
11:02:19 ДП
User 112715267
я вот щас с проектом одним закончу и продолжу
для начала напишу бэкэнд чего-нибудь
а потом уже буду плясать оттуда
11:02:28 ДП
User 112715267
естественно, на ноде все
11:03:01 ДП
User 60331718
User 60331718
@Kelin2025 ты там спрашивал, что бы такого сложного сделать - сделай авторизацию и страничку настроек
я вот уже третьи сутки пишу эту фигню
11:03:26 ДП
User 112715267
а что там такого
11:03:55 ДП
User 112715267
скажи лучше, как ты материал подключил туда
11:04:10 ДП
User 112715267
я голову ломаю над этим все время
11:04:22 ДП
User 112715267
хочу подключить jquery и materialize через npm, но все время что-то через жопу идет
11:04:26 ДП
User 60331718
User 112715267
скажи лучше, как ты материал подключил туда
просто заинлайнил в index.html
11:04:32 ДП
User 112715267
так а это
11:04:39 ДП
User 112715267
в vue не работает
11:04:40 ДП
User 112715267
тогда
11:04:46 ДП
User 112715267
да и костыльно это
11:05:36 ДП
User 60331718
че эт не работает? я опочти не использую jquery, если и спользую то в mounted
11:09:24 ДП
11:09:29 ДП
User 112715267
у меня иногда пишет
11:09:33 ДП
User 112715267
типа $ is not defined
11:09:45 ДП
User 112715267
ну да пофиг
11:09:47 ДП
User 60331718
как красиво instance.defaults.headers.common['Authorization'] = AUTH_TOKEN для axios сделать, если токен хранится в хранилище?
11:09:58 ДП
User 60331718
User 112715267
типа $ is not defined
в ide или при билде?
11:10:27 ДП
User 112715267
не в иде
11:10:29 ДП
User 112715267
и не при билде
11:10:31 ДП
11:10:51 ДП
User 112715267
девтулзы пишут
11:11:15 ДП
User 60331718
User 112715267
девтулзы пишут
хм, странно, у меня такого пока не было
11:11:52 ДП
User 60331718
вот как я все линкую
11:12:00 ДП
User 112715267
ну я тоже так делаю
11:12:20 ДП
User 112715267
но можно через нпм поставить
11:12:40 ДП
User 60331718
User 112715267
но можно через нпм поставить
я забил, мне было лень разбираться, да и не за чем
11:12:53 ДП
User 112715267
на самом деле есть смысл
11:13:01 ДП
User 60331718
User 112715267
на самом деле есть смысл
только для продакшена
11:13:05 ДП
User 60331718
а до него еще не скоро
11:13:05 ДП
User 112715267
ну на сайтах не особо, через cdn подключить тип лучше куда
11:13:15 ДП
User 112715267
но в электроне лучше все в один
11:13:43 ДП
User 60331718
аа, не у меня простой сайт
11:14:08 ДП
11:14:27 ДП
User 112715267
я просто хочу
11:14:32 ДП
User 112715267
ту тудушку
11:14:40 ДП
User 112715267
проапгрейдить, так сказать
11:14:54 ДП
User 112715267
запилить апи, подключить монгодб
11:15:14 ДП
User 112715267
+ vue-route подключить, а то не каеф
11:15:48 ДП
User 60331718
User 112715267
+ vue-route подключить, а то не каеф
ты до сих пор vue-router не использвал чтоли?
11:15:55 ДП
User 112715267
я умею им пользоваться давно
11:16:31 ДП
User 112715267
я вообще vue пользуюсь очень давно, но я юзал первую версию
и без всех прелестей вроде компонентов и vuex'a
11:16:55 ДП
User 112715267
просто в этой тудушке он не понадобился)
11:17:17 ДП
User 60331718
User 112715267
я вообще vue пользуюсь очень давно, но я юзал первую версию
и без всех прелестей вроде компонентов и vuex'a
ах тыж читер
11:17:23 ДП
User 60331718
а я все с нуля, ну почти
11:17:30 ДП
User 112715267
я тебе больше скажу
11:17:36 ДП
User 112715267
я какое-то время даже ангулар пробовал
11:17:40 ДП
User 112715267
первую версию
11:17:44 ДП
User 112715267
но я нихрена не понял
11:17:51 ДП
User 112715267
точнее как, я вроде как все понимал, все работает
11:17:58 ДП
User 112715267
но в то же время понимал, что какое-то гавно пишу
11:18:13 ДП
User 112715267
ну и забил в итоге, слишком он громоздкий
11:18:17 ДП
User 112715267
vue каеф
11:18:42 ДП
User 60331718
User 112715267
ну и забил в итоге, слишком он громоздкий
+ тоже его осваивал, но меня дико бесило, что он ненормально пытался перетянуть js в html
11:18:44 ДП
User 112715267
че ты хочешь, я программирование изучаю с 11 лет
11:18:52 ДП
User 60331718
про второй вообще молчу
11:19:08 ДП
User 60331718
вот react был няшкой, но он слишком илитарный для меня
11:19:09 ДП
User 112715267
посмотрим, что в третьем будет, а вообще они уже говорят о четвертом
11:19:21 ДП
User 60331718
User 112715267
посмотрим, что в третьем будет, а вообще они уже говорят о четвертом
все равно все на vue перейдут
11:19:30 ДП
User 112715267
Реакт - конечно, хорошо, но мне несколько нюансов не нравится в нем
11:19:37 ДП
User 60331718
а из vue в реакт можно податься
11:19:45 ДП
User 60331718
User 112715267
Реакт - конечно, хорошо, но мне несколько нюансов не нравится в нем
нука?
11:19:58 ДП
User 112715267
- слишком много хайпа
- эта идеология html-in-js, css-in-js меня раздражает
11:20:14 ДП
User 112715267
в vue офигенно реализовано
11:20:24 ДП
User 112715267
хтмл отдельно, стили отдельно, жс отдельно
11:20:31 ДП
User 112715267
и все в одном файле при этом
11:20:36 ДП
User 60331718
User 112715267
- слишком много хайпа
- эта идеология html-in-js, css-in-js меня раздражает
ты че, первое это очень круто, а второе я пока так и не раскусил, жду когда в массы пойдет virtual css
11:20:36 ДП
User 112715267
еще и разделено по компонентам
11:20:44 ДП
User 112715267
не круто
11:21:19 ДП
User 112715267
когда везде и всюду тебе говорят "забей, пиши на реакте"
11:21:22 ДП
User 112715267
"реакт, реакт, реакт"
11:21:25 ДП
User 112715267
а ты докажи, что не реакт
11:21:54 ДП
User 112715267
https://vk.com/video49381279_456239020
Чисто вот
vk.com/video49381279_456239020
vk.com video
11:22:03 ДП
User 112715267
Только вместо аллаха реакт
11:23:29 ДП
User 60331718
я решил взять точку зрения по поводу реакта из этой статьи:
https://geektimes.ru/company/banderolka/blog/284094/
geektimes.ru/company/banderolka/blog/284094
Недавно команда Qwintry начала активную миграцию на Vue.js во всех наших старых и новых проектах: в legacy системе, работающей на Drupal (qwintry.com) в...
11:30:14 ДП
User 60331718
где можно посмотреть как использовать watch за геттером у хранилища?
11:32:40 ДП
User 133750577
User 60331718
где можно посмотреть как использовать watch за геттером у хранилища?
В смысле?
11:33:19 ДП
11:33:34 ДП
User 112715267
почему мне не приходилось такие велосипеды придумывать
11:34:18 ДП
User 215699186
жесть, сколько тут флуда
11:34:56 ДП
User 60331718
User 133750577
В смысле?
я сделал такой геттер у хранилища:
isAuthorized: state => { return (state.token !== null) }

и потом в компоненте в зависимости от его значения хочу что-то сделать, как это реализовать?
11:35:05 ДП
User 60331718
User 215699186
жесть, сколько тут флуда
стараюсь
11:35:15 ДП
User 60331718
User 215699186
жесть, сколько тут флуда
правда и по делу много
11:37:18 ДП
User 133750577
Если геттер один, в компоненте пишешь `
computed: {
  isAuthorized () {
    return this.$store.getters.isAuthorized
  }
}
11:37:51 ДП
User 133750577
А вообще, это в доке в самом начале
11:38:06 ДП
User 60331718
User 133750577
А вообще, это в доке в самом начале
дока по vue?
11:38:51 ДП
User 55423102
Скорее всего он о доке Vuex
11:39:42 ДП
User 60331718
да, точно, пасиба, а то чуть по наклонной не пошел
11:41:20 ДП
User 112715267
User 60331718
стараюсь
как на addmeto
11:41:25 ДП
User 112715267
топ 2 мы с тобой
11:41:44 ДП
User 60331718
User 112715267
как на addmeto
да, было дело, но мы тогда еще молодые были
11:41:57 ДП
User 112715267
а тут есть какая-нибудь стата
11:42:06 ДП
11:42:07 ДП
User 112715267
печаль
11:42:22 ДП
User 60331718
User 112715267
а тут есть какая-нибудь стата
а не, я статодрочеством я завязал
11:42:27 ДП
User 112715267
ну тут итак понятно, что нафлудили больше, чем за все время все тут флудили
11:42:39 ДП
User 112715267
так я и не статы ради, а так, просто)
11:42:53 ДП
User 112715267
если бы за это платили)
11:43:09 ДП
User 60331718
User 133750577
Если геттер один, в компоненте пишешь `
computed: {
  isAuthorized () {
    return this.$store.getters.isAuthorized
  }
}
а вспомнил, там такая страбла, что в зависимости от того, что возвращает эта функция, я должен закрыть или открыть модальное окно
11:43:42 ДП
User 112715267
нами можно учить нейросетку
11:43:55 ДП
User 112715267
кстати говоря, многие пророчат этот год "годом чат-ботов"
11:45:41 ДП
User 60331718
User 60331718
а вспомнил, там такая страбла, что в зависимости от того, что возвращает эта функция, я должен закрыть или открыть модальное окно
т.е типо вот как-то так должно быть:
watch: {
  'isAuthorized': closeAuthModal()
}
11:49:12 ДП
User 60331718
User 60331718
т.е типо вот как-то так должно быть:
watch: {
  'isAuthorized': closeAuthModal()
}
решено, уже не актуально
watch: {
  'isAuthorized': 'closeAuthModal'
}
11:55:53 ДП
User 60331718
User 60331718
как красиво instance.defaults.headers.common['Authorization'] = AUTH_TOKEN для axios сделать, если токен хранится в хранилище?
но вот это до сих пор актуально, как это сделать?
12:10:35 ПП
User 60331718
внутри действия хранилища, можно ли получить значение какого-нибудь из его полей?
12:11:53 ПП
User 112715267
тебя никто не слушает
12:12:02 ПП
12:12:22 ПП
User 60331718
User 112715267
тебя никто не слушает
я задаю вопрос чтобы не получить готовое решение, а чтобы получить направление поиска
12:12:33 ПП
User 60331718
поэтому если никто не ответит - я пытаааался
12:15:34 ПП
User 60331718
User 60331718
внутри действия хранилища, можно ли получить значение какого-нибудь из его полей?
хм, похоже в context есть поле state, его и надо использовать
01:56:55 ПП
User 108562525
такой вопрос. вижу часто вот так пишут.

Vue.component('kek', {
    template: '<p>kek me</p>',
    data() {
       return {
           text: 'hi'
       };
    }
})
по мне это по-уродски, можно ли писать так?

Vue.component(…, {
    data: () => ({
        text: 'hi'
    })
}
02:01:41 ПП
02:03:38 ПП
User 112715267
​Беспилотный автомобиль Faraday Future сорвал собственную презентацию
https://goo.gl/6GC0r5
static37.cmtt.ru/club/84/75/81/679aff6e81d37e.jpg
02:04:16 ПП
02:05:36 ПП
User 108562525
User 57696946
да
опытным путём выяснилось, что нужно ещё пару скобок навесить.
02:05:47 ПП
User 108562525
иначе интерпретатор считает, что там тело метода.
02:05:55 ПП
User 57696946
а, ну это да
02:05:59 ПП
User 57696946
круглые скобки нужны
02:06:18 ПП
User 108562525
ну всё же куда лучше, чем двойной отступ.
02:12:01 ПП
User 133750577
Иногда так делаю
02:12:06 ПП
02:13:25 ПП
User 133750577
Закрывающаяя скобка лишняя
02:18:26 ПП
User 60331718
Сволочи, я только что достиг гармонии, а теперь придётся снова переписывать
02:19:34 ПП
User 108562525
😏😏😏
02:19:46 ПП
User 108562525
data: () => ({
    kek: 'kek'
})
02:26:18 ПП
User 60331718
Побить вас мало
02:46:29 ПП
User 136935602
Как по мне основная боль vue не в этом :)
02:46:55 ПП
User 136935602
А в том что в чистом виде к нему статическая типизация не прикручивается никак
02:47:12 ПП
User 136935602
Имхо лучше б сразу учили бы костылям на классах :)
02:50:16 ПП
User 60331718
А как же type script?
04:01:26 ПП
User 136935602
так в этом-то и суть
04:01:30 ПП
User 136935602
чтоб типизировать надо юзать https://github.com/vuejs/vue-class-component
github.com/vuejs/vue-class-component
ES / TypeScript decorator for class-style Vue components. - vuejs/vue-class-component
04:02:53 ПП
User 136935602
в итоге вьюшный код "чтоб типизировался" и обычный достаточно разные
04:03:18 ПП
User 136935602
а про тайпскрипт не смешите меня 😋
04:05:30 ПП
User 136935602
там система типов достаточно гомеопатическая
04:30:41 ПП
User 112715267
что есть slot в vue.js?
04:34:50 ПП
User 136935602
точка внедрения компонентов, отрисованных внутри элемента
04:35:00 ПП
User 136935602
а вообще это не vue, это shadow dom v1
04:35:03 ПП
User 136935602
лучше туда смотреть
07:07:40 ПП
User 60331718
есть какой-то пример, где используются сторожевые хуки vue-router?
07:07:57 ПП
07:11:40 ПП
User 136935602
https://gist.github.com/xanf/771ad7fddfce688bbc29b1a0964e23f5
gist.github.com/xanf/771ad7fddfce688bbc29b1a0964e23f5
07:12:01 ПП
User 136935602
Вот выдрал с реального проекта. Сорри, с телефона :)
07:12:25 ПП
User 60331718
ух, спасибо, а то документация довольно бедна на эту тему
07:13:25 ПП
User 136935602
Осторожно,  градус наркомании в коде 6 по пятибальной :)
07:13:32 ПП
User 60331718
:NavigationGuard что это?
07:13:35 ПП
User 136935602
Мои вкусы весьма специфичны
07:13:42 ПП
User 136935602
Это flow
07:13:50 ПП
User 136935602
Строгая типизация в js
07:13:57 ПП
User 136935602
Игнорируй :)
07:15:25 ПП
User 60331718
даже такой кусочек кода открыл мне глаза, я то думал что пихнув 1 раз в конструктор vue само хранилище оно будет изменяться локально, только внутри инстанса vue
07:15:28 ПП
07:15:59 ПП
User 60331718
а почему IS_LOGGED_IN заделал как константу?
07:16:43 ПП
User 136935602
Чтобы не думать о конфликтах имён в разных модулях vuex
07:17:08 ПП
User 136935602
Все геттеры со всех модулей вливаются в store.getters
07:18:12 ПП
User 136935602
И мало ли какой программист захочет назвать свой геттер к примеру table или data
07:18:27 ПП
User 136935602
Залог успешного проекта - жёсткая диктатура со стороны кодстайла
07:37:43 ПП
User 55423102
А от нытия коллег от жёсткой диктатуры по кодстайлу есть варианты отделаться? 😂
07:39:58 ПП
User 133944225
User 136935602
Залог успешного проекта - жёсткая диктатура со стороны кодстайла
скажи пожалуйста, я предполагаю, что ты мониторишь рынок и требования заказчиков, можно ли ждать от ву такой же популярности как от реакта или нг ? Просто, сейчас ухожу от ng1 и думаю куда податься, есть реакт, а есть - ву. Компания хочет реакт, и я готов с этим смириться, но сердце хочет vue )
Я верю в него по трем причинам: 1)пост Evan`а о темпах развитя за 2016, 2) доклад Листочкина 3)порыв души и сердца. 
Что думаешь по этому поводу ?
08:08:18 ПП
User 136935602
User 55423102
А от нытия коллег от жёсткой диктатуры по кодстайлу есть варианты отделаться? 😂
Да. Добрым словом и пистолетом. Гораздо эффективнее чем просто долгим словом
08:11:34 ПП
User 136935602
User 133944225
скажи пожалуйста, я предполагаю, что ты мониторишь рынок и требования заказчиков, можно ли ждать от ву такой же популярности как от реакта или нг ? Просто, сейчас ухожу от ng1 и думаю куда податься, есть реакт, а есть - ву. Компания хочет реакт, и я готов с этим смириться, но сердце хочет vue )
Я верю в него по трем причинам: 1)пост Evan`а о темпах развитя за 2016, 2) доклад Листочкина 3)порыв души и сердца. 
Что думаешь по этому поводу ?
Мониторю. Мое мнение что популярность ву будет сильно меньше реакта. В основном потому что реакт уже достиг плато продуктивности, а ву нет. Так же потому что мы увидим эффект "победитель забирает все", а ву останется (по моим оценкам) #3 после реакта и нг2 (хотя мне он ужасно не нравится)

В то же время я верю что ву позволяет решать бизнес-задачи быстрее и продуктивней именно в сфере аутсорсинга (начиная от порога вхождения для джуниоров и заканчивая более "очевидной" экосистемой), а это значит что спрос на ву разработчиков будет и по моим ожиданиям именно в силу меньшей популярности технологии они будут стоить дороже

Мы с Андреем на Speaker Corner'е на последнем MostJS Frameworks Day хвалили Ву. Там было забавно - сидело 5 спикеров на сцене, из них 4 включая меня хайпили Ву
08:20:10 ПП
User 60331718
хм, что-то у меня вылетает с ошибкой:
у меня есть страничка с авторизацией и я хочу редиректнуть на главную страцу если авторизация прошла успешна:
у меня есть геттер isAuthorised
есть метод у компоненты:
goToApps () {
      if (this.isAuthorized) {
        this.$router.push({name: 'apps'})
      }
    }
и редирект осуществлятся через:
 watch: {
    'isAuthorized': 'goToApps'
  },
08:20:28 ПП
User 60331718
почему такая ошибка?
08:20:56 ПП
User 133944225
а зачем вотчер?
08:21:03 ПП
User 136935602
похоже что this отваливается
08:21:06 ПП
User 136935602
судя по ошибке
08:21:34 ПП
User 60331718
User 133944225
а зачем вотчер?
а как по другому?
08:22:05 ПП
User 133944225
я всегда думал, что должен висеть хук на роутере и при каждом изменении роута чекать авторизацию и тогда уже редиректить куда нужно
08:22:10 ПП
User 136935602
а вообще для этого сценария я бы использовал lifecycle методы или роутинг
08:22:59 ПП
User 136935602
а вотчеры это как-то so angular :)
08:23:35 ПП
User 60331718
но погодите, я не понимаю как то, что вы предлагаете мне поможет, мне же все равно нужно сначала заставиь редиректнуться куда-нибудь
08:23:47 ПП
User 60331718
как это сделать если не через watcher?
08:23:56 ПП
User 133944225
у тебя есть роутер?
08:24:02 ПП
User 60331718
User 133944225
у тебя есть роутер?
есть
08:24:11 ПП
User 133944225
знаешь что такое lifecycle ?
08:24:12 ПП
User 136935602
я так понимаю авторизация выполняется попапом
08:24:18 ПП
User 136935602
и может быть с любой страницы
08:24:21 ПП
User 60331718
User 133944225
знаешь что такое lifecycle ?
для компоненты только
08:24:29 ПП
User 133944225
у роутера тоже самое почти
08:24:35 ПП
User 133944225
хуки иные просто
08:24:42 ПП
User 60331718
User 136935602
я так понимаю авторизация выполняется попапом
и через попап и через отдельную страницу
08:25:07 ПП
User 133944225
ты можешь дергать хук на каждое изменение роута и смотреть авторизован ли пользователь, если нет - редирект на логин пейдж
08:25:17 ПП
User 136935602
это не покрывает сценарий попапа
08:25:30 ПП
User 136935602
пардон, отошел на пару часов
08:25:33 ПП
User 133944225
почему же ?
08:25:42 ПП
08:25:44 ПП
User 133944225
понял
08:26:44 ПП
User 60331718
тогда как делать?
08:32:45 ПП
User 60331718
документация по хукам ужасна, откуда вы черпали знания?
08:33:18 ПП
User 60331718
вот например, как использовать гловальный хук в компоненте? откуда берутся параметры хука?
08:33:57 ПП
User 60331718
или это там все как-то автоматически подставлется, в чем я сильно неуверен
08:34:12 ПП
User 133944225
тебе не нужно использовать хук в компоненте
08:34:36 ПП
User 60331718
хорошо, тогда какое условие заставит редиректнуться?
08:34:53 ПП
User 133944225
http://router.vuejs.org/ru/advanced/navigation-guards.html
08:34:55 ПП
User 60331718
вот с watch все понятно: переменная изменилась - вызвалась функция
08:35:07 ПП
User 133944225
это если сейчас говорить про роутинг и без попапа
08:35:19 ПП
User 133944225
у тебя есть beforeEach
08:35:34 ПП
User 60331718
User 133944225
это если сейчас говорить про роутинг и без попапа
ок
08:36:25 ПП
User 133944225
ты там дёргаешь стор, например, чекаешь залогинен ли юзер, если нет делаешь редирект
08:38:14 ПП
User 60331718
как мы подставляем туда аргументы to, from, next?
08:38:30 ПП
User 133944225
to - роут  куда идет переход
08:38:43 ПП
User 133944225
from - роут откуда идет переход
08:39:35 ПП
User 60331718
User 133944225
to - роут  куда идет переход
это я понял, но в фунцию мы передает что-то типо this.$router...?
08:39:55 ПП
User 133944225
next - запускает следующий хук
08:40:08 ПП
User 133944225
а ты ничего
08:40:13 ПП
User 133944225
туда не можешь передать
08:40:59 ПП
User 60331718
так так, вроде начинаю догонять
08:41:03 ПП
User 133944225
это автоматическая функция, которая вызывается каждый раз, когда меняется твой роут
08:41:03 ПП
User 133944225
глупо звучит
08:41:03 ПП
User 133944225
но примерно так если на пальцах)
08:41:09 ПП
User 60331718
ща попробую это реализовать
08:41:36 ПП
User 133944225
у тебя хук например created в компоненте вызывается каждый раз при рендере, хуки в роутере вызываются каждый раз при роутинге
08:43:30 ПП
User 60331718
User 133944225
у тебя хук например created в компоненте вызывается каждый раз при рендере, хуки в роутере вызываются каждый раз при роутинге
звучит умно, но я еще не до конца осознал lifecicle роутера
08:43:39 ПП
User 60331718
т.е типо почему он работает именно так
08:45:42 ПП
User 60331718
а почему у Ильи:
https://gist.github.com/xanf/771ad7fddfce688bbc29b1a0964e23f5
переход на новую ссылку осуществялется через push, а не через next?
gist.github.com/xanf/771ad7fddfce688bbc29b1a0964e23f5
08:46:06 ПП
User 133944225
Ты путаешь переход на ссылку
08:46:14 ПП
User 133944225
или на следующий хук
08:46:50 ПП
User 133944225
Илья редиректнул своего юзера на Login и потом обозначил, что дальше можно не юзать хуки, если же юзер залогинен он юзает next()
08:48:14 ПП
User 60331718
а, понял
08:49:39 ПП
User 60331718
так, я не понял последнюю вещь:
почему у него в коде импортится хранилище, а не используется хранилище, которое было передано при инициализации инстанса vue?
08:50:18 ПП
User 60331718
если он сделает такие импорты в разных файлах, он ведь получит несколько различных хранилищ, а не копии одного
08:51:29 ПП
User 133944225
это хороший вопрос
08:51:58 ПП
User 60331718
тоже самое про роутер
09:06:20 ПП
User 60331718
я думаю что-то не то
09:07:03 ПП
User 60331718
кароч, допустим я нахожусь на страничке авторизации: я успешно авторизировался и хочу редиректнуть пользователя на какую-нибудь страничку, как это сделать?
09:08:54 ПП
User 55423102
router.push({ path: 'home' })
09:09:01 ПП
User 55423102
или куда там хочется
09:09:34 ПП
User 55423102
можно .replace чтобы не осталась авторизация в истории
09:09:43 ПП
User 60331718
User 55423102
router.push({ path: 'home' })
как отследить что пользователь успешно авторизировался, чтобы пушнуть  нужное место?
через watch?
09:10:05 ПП
User 55423102
router.beforeEach((to, from, next) => {
    if (!store.state.auth.status) {
        next({ path: '/login' })
    } else {
        next()
    }
})
09:10:42 ПП
User 55423102
что-то типа такого в корне делать надо будет, когда все инициализируешь
09:10:50 ПП
User 55423102
тогда при каждой смене роута будет выполняться проверка
09:10:57 ПП
User 60331718
User 55423102
router.beforeEach((to, from, next) => {
    if (!store.state.auth.status) {
        next({ path: '/login' })
    } else {
        next()
    }
})
почему ты используешь router, а не this.$router?
09:11:08 ПП
User 60331718
User 60331718
почему ты используешь router, а не this.$router?
а все понял
09:11:18 ПП
User 60331718
User 55423102
router.beforeEach((to, from, next) => {
    if (!store.state.auth.status) {
        next({ path: '/login' })
    } else {
        next()
    }
})
а если мне это не всегда нужно?
09:11:30 ПП
User 55423102
const router = new VueRouter({
  routes // short for routes: routes
})
09:11:42 ПП
User 55423102
Перед инициализацией Vue пока еще с роутером возишься будет
09:12:00 ПП
User 55423102
если не всегда, то доп. проверку добавлять, например через meta
09:12:31 ПП
User 60331718
User 55423102
если не всегда, то доп. проверку добавлять, например через meta
во, и тут у меня есть вопрос
09:13:09 ПП
User 60331718
что есть requiresAuth? где мы ее объявили?
09:13:41 ПП
User 60331718
т.е meta работает как if?
09:13:45 ПП
User 55423102
в meta как я понял можно пихать всё что тебе захочется и нужно будет
09:14:00 ПП
User 55423102
просто какие-то доп.свойства роута
09:14:14 ПП
User 60331718
User 55423102
в meta как я понял можно пихать всё что тебе захочется и нужно будет
ок, вот я пихнул туда что-то, а в какой функции я использую эту мету? и как?
09:14:35 ПП
User 60331718
User 60331718
ок, вот я пихнул туда что-то, а в какой функции я использую эту мету? и как?
не актуально, ниже написанно там
09:14:54 ПП
User 55423102
у того роута в мета будет свойство равное true, и например в той проверке можно добавить кроме проверки хранилища чекать на if (to.meta.Auth && !store.state.auth.status) {
09:15:08 ПП
User 55423102
*requiredAuth
09:15:16 ПП
User 55423102
.to.meta.requiredAuth
09:15:22 ПП
User 55423102
ну ты понял
09:15:23 ПП
09:15:26 ПП
09:15:31 ПП
User 215699186
User 136935602
Мониторю. Мое мнение что популярность ву будет сильно меньше реакта. В основном потому что реакт уже достиг плато продуктивности, а ву нет. Так же потому что мы увидим эффект "победитель забирает все", а ву останется (по моим оценкам) #3 после реакта и нг2 (хотя мне он ужасно не нравится)

В то же время я верю что ву позволяет решать бизнес-задачи быстрее и продуктивней именно в сфере аутсорсинга (начиная от порога вхождения для джуниоров и заканчивая более "очевидной" экосистемой), а это значит что спрос на ву разработчиков будет и по моим ожиданиям именно в силу меньшей популярности технологии они будут стоить дороже

Мы с Андреем на Speaker Corner'е на последнем MostJS Frameworks Day хвалили Ву. Там было забавно - сидело 5 спикеров на сцене, из них 4 включая меня хайпили Ву
Соглашусь, только я таки думаю что ву станет номер 2 а со временем еще поборется звание номер 1. Реакт будет номер 1, это к гадалке не ходи, еще очень долго за счет разработанной клиентской базы. Ангуляр2 у многих вызвал только негатив, т.е. не оправдал успех первой версии, поэтому трудно ему придется, а ву популярность растет бешеными темпами и хаип от профессионалов. Кроме того, ву вошел в коробку ларавеля (самый популярный пхп фреймворк в мире), и форк ву использует алибаба (самая крупная китайская корпорация), ставлю на то, что вы станет номер 2 уже в 2017
09:16:28 ПП
User 55423102
вовремя запрыгнули на поезд хайпа
09:17:06 ПП
User 60331718
User 133944225
это хороший вопрос
все, до меня все дошло
09:17:13 ПП
User 60331718
User 55423102
const router = new VueRouter({
  routes // short for routes: routes
})
вот и ответ
09:17:41 ПП
User 108562525
Соколов поменял аватарку и чат заиграл новыми красками.
09:17:45 ПП
User 60331718
карочи они не пихаю все в конструнтор vue а просто где нужно его импортят
09:17:48 ПП
User 108562525
Сначала даже не узнал его.
09:18:02 ПП
User 55423102
В новый год с новой авой
09:26:06 ПП
User 60331718
User 55423102
router.beforeEach((to, from, next) => {
    if (!store.state.auth.status) {
        next({ path: '/login' })
    } else {
        next()
    }
})
вот опять не то
09:26:39 ПП
User 60331718
мне НЕ нужно на  страницу с авторизацией, я сейчас нахожу на ней, мне нужно перейти с нее на главную
09:27:24 ПП
User 133944225
а почему
09:27:45 ПП
User 133944225
не написать еще один иф не проверить на какой ты странице и сделать редирект на главную?
09:28:19 ПП
User 55423102
Ну или на странице авторизации сделай кнопку "ПЕРЕЙТИТУДАТО" если авторизован провалится дальше, если нет вернется на авторизацию снова
09:29:03 ПП
User 60331718
User 133944225
не написать еще один иф не проверить на какой ты странице и сделать редирект на главную?
в глобальном хуке?
09:29:07 ПП
09:29:14 ПП
User 133944225
или как минимум
09:29:18 ПП
User 133944225
перед рендером auth
09:29:24 ПП
User 133944225
компонента
09:31:45 ПП
User 60331718
User 133944225
перед рендером auth
нет, вот опять про одно и тоже говорите мне, а я вам говорю про другое:
я уже нахожусь на страничке /login, еще не авторизированный
дальше я ввожу логин и пароль и если все успешно то геттер хранилища isAuthorized становится true
дальше если он стал тру, мне нужно редиректить на главную
09:31:59 ПП
User 60331718
есть только вот эта ситуация и все
09:32:03 ПП
09:32:31 ПП
User 133944225
в чем проблема вызвать запрос на логин и если успешно
09:32:34 ПП
User 133944225
сделать редирект?
09:32:36 ПП
User 60331718
а вы мне рассказываете, что я уже на главной и если я не ваторизирован, то как кидать на логин
09:33:20 ПП
User 60331718
User 133944225
сделать редирект?
это делается через watch за isAuthrized?
09:33:51 ПП
User 133944225
не могу понять зачем вотчить
09:34:04 ПП
User 133944225
ты когда авторизуешься тыкаешь кнопочку "Логин"
09:34:07 ПП
User 133944225
или че там у тебя
09:34:12 ПП
User 133944225
вызывается событие
09:34:20 ПП
User 55423102
ну где там у тебя true становится, пихани после this.$router.push('/')
09:34:22 ПП
User 133944225
и если все прошло успешно делаешь редирект, не?
09:34:44 ПП
User 55423102
push точнее, go раньше был
09:35:13 ПП
User 60331718
кароч, у меня есть комонента Auth которая используется и в попапе и в страничке логина, и я не хочу в него пихать то, что зависит от того, где он будет рендерится
09:35:47 ПП
User 55423102
ну компонент же будет обрабатывать авторизованы ли мы в итоге или нет
09:36:24 ПП
User 60331718
User 55423102
ну компонент же будет обрабатывать авторизованы ли мы в итоге или нет
да, и его результат это то, что isAuthorized становится true
09:36:44 ПП
User 55423102
ну вот где становится программно редирект сделай на главную) или куда надо)
09:37:23 ПП
User 60331718
User 55423102
ну вот где становится программно редирект сделай на главную) или куда надо)
но ведь тогда я подмешиваю в Auth компоненту то, что там быть не должно
09:37:38 ПП
User 60331718
и если авторизация идет через попап, то смысла в редректе - нет
09:38:41 ПП
User 55423102
подмешивай название пути на который надо перенаправить
09:38:49 ПП
User 55423102
который откуда-то из внешнего мира придет
09:39:07 ПП
User 60331718
User 55423102
подмешивай название пути на который надо перенаправить
зачем? оно ведь там не всегда нужно
09:39:29 ПП
User 55423102
чтобы не подмешивать в Auth то чего там быть не должно)
09:39:44 ПП
User 60331718
если я нахожусь на странице /login оно нужно, а если я уже на /main и авторизация через попап - не нужно
09:40:36 ПП
User 55423102
генерируй всегда событие что авторизовались, а где надо слушай его
09:40:53 ПП
User 60331718
User 55423102
генерируй всегда событие что авторизовались, а где надо слушай его
так и думаю сделать
09:41:12 ПП
User 60331718
пасиба всем)
09:44:33 ПП
User 60331718
User 60331718
так и думаю сделать
заработало
09:45:44 ПП
User 60331718
#router #хуки
10:41:51 ПП
User 136935602
User 60331718
так, я не понял последнюю вещь:
почему у него в коде импортится хранилище, а не используется хранилище, которое было передано при инициализации инстанса vue?
исторически сложилось, вначале это был роутер хук, а не хук на уровне компонента, а в роутер хуках хранилище недоступно. Надо бы поправить
10:45:35 ПП
User 136935602
Хотя честно говоря вот эти this.$router и this.$store вызывают у меня отторжение
10:45:50 ПП
User 136935602
Ну т.е. я понимаю что и как, но блин