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

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

3988 members

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

04:25:23 ДП
User 55423102
https://risingstars2016.js.org/
risingstars2016.js.org
A complete overview of the JavaScript landscape in 2016: trends about front-end and node.js frameworks, tooling, IDE, Static site generators...
05:05:27 ДП
User 55423102
User 112715267
но не в png же указывать файл на js)
Имелось ввиду кто кого подключает. А не кто куда подключается)
05:06:14 ДП
User 58768789
User 55423102
https://risingstars2016.js.org/
risingstars2016.js.org
A complete overview of the JavaScript landscape in 2016: trends about front-end and node.js frameworks, tooling, IDE, Static site generators...
05:07:10 ДП
08:44:41 ДП
User 85413039
Реально пока нету бестпрактикс
08:45:20 ДП
User 60331718
User 85413039
Реально пока нету бестпрактикс
Я вот в исходниках копаюсь, чтобы посмотреть что и как они там делают
08:53:17 ДП
User 55423102
У вас есть все шансы их написать! 😃
08:53:28 ДП
User 55423102
Удобно же, не надо следовать чьим-то практикам, следуешь своим)))
09:09:34 ДП
User 152816933
Хм... Мне кажется, или на офф сайте добавили корейский 🤔
09:14:25 ДП
User 133750577
Наконец-то
09:14:47 ДП
User 133750577
Хоть теперь все понятно будет
09:19:44 ДП
User 133277047
User 112715267
упоротые художники
ну там как бэ слово dependencies
09:40:55 ДП
User 112715267
https://youtu.be/MuLWXHgyEVw
youtube.com/watch?v=MuLWXHgyEVw
Our brand identity – our logo, our voice, our design – is an important signal of what we believe in and what we do. And because we are so committed to ensuri...
09:53:24 ДП
User 60331718
User 55423102
Удобно же, не надо следовать чьим-то практикам, следуешь своим)))
И выходит говнокод
09:56:28 ДП
User 55423102
User 60331718
И выходит говнокод
А ты не пиши говнокод)
09:56:53 ДП
User 40268779
посоны прочтите - https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
Clean Code: A Handbook of Agile Software Craftsmanship [Robert C. Martin] on Amazon.com. *FREE* shipping on qualifying offers. Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year
09:57:05 ДП
User 60331718
User 55423102
А ты не пиши говнокод)
Именно этим сейчас и занимаюсь - переписываю проект, после того как покопался в примерах
09:57:07 ДП
User 40268779
тогда сразу куча проблем говнокода отпадет
09:57:15 ДП
User 60331718
Так что ждите новых вопросов, хехе
09:57:20 ДП
User 40268779
не важно scala или vuejs
09:58:49 ДП
User 60331718
User 60331718
Так что ждите новых вопросов, хехе
Тем более он есть, по проксированию namespased действий через алиас
09:59:28 ДП
User 136935602
чистый код как по мне слегка слишком распиаренная книжка
10:02:53 ДП
User 40268779
User 136935602
чистый код как по мне слегка слишком распиаренная книжка
ну как, что значит слишком? говна там не написано, вроде может местами overkill. ну читать одно удовольствие
10:03:23 ДП
User 60331718
Ладно, прям сейчас задам
Я объявляю действие в отдельном файле actions.js вот так:

export const someAction = (...) => {} 

Потом импорчу его в index.js для нужного модуля:

import * as actions from 'modulr/index'

export default {
  namespased: true,
  ...
  actions,
  ...
}


Дальше в компоненте проксирую через mapActions(['module/someAction'])

И когда вызывают где-нибудь как this.someActions() то получаю ошибку, дескать она не является функцией

Почему так?
10:03:46 ДП
User 136935602
Сужу по личному опыту подготовки миддлов. Если дать эту книгу джуну и т.д. - то по прочтению он говорит "вроде прикольно", но при применении этого в реальной жизни возникает больше вопросов чем ответов
10:04:02 ДП
User 136935602
особенно в контексте JS где есть важные отличия языка в силу отсутствия типизации (как в JAVA)
10:04:46 ДП
User 40268779
User 136935602
Сужу по личному опыту подготовки миддлов. Если дать эту книгу джуну и т.д. - то по прочтению он говорит "вроде прикольно", но при применении этого в реальной жизни возникает больше вопросов чем ответов
ну я ее читал уже после джун уровня, тоесть когда костылей написано и наломано столько что ты и сам мноиге вещи понял иили уивдел у других, но там это все экстрагируется простыми словами
10:07:41 ДП
User 136935602
а я тут радуюсь новому flowtype. Наконец то можно писать импорты типов вместе с кодом
10:07:59 ДП
User 136935602
import { Foo, type ClientType, typeof Vue } from 'vue-adapter';
10:08:19 ДП
User 136935602
а то раньше это было два импорта из одного файла - один с кодом, второй с import type
11:00:26 ДП
User 60331718
How to escape Promise Hell – Medium
https://medium.com/@pyrolistical/how-to-get-out-of-promise-hell-8c20e0ab0513#.9pu5oyvtl
medium.com/@pyrolistical/how-to-get-out-of-promise-hell-8c20e0ab0513
Unlike Callback Hell, Promise Hell is accidentally self inflicted. Promise Hell is just a lack a familiarity with Promises.
11:00:31 ДП
User 152816933
Никто не задавался вопросом, как добавлять дополнительные поля в объект опций компонента (который мы обычно отдаем на экспорт в однофайловых компонентах)? Что бы потом эти поля через this можно было вытащить.
Знаю, звучит странно, но я хочу отдельное поле :)
11:00:49 ДП
User 136935602
а можно глобально нафига?
11:01:07 ДП
User 152816933
не понял вопроса?
11:03:41 ДП
User 65484181
вопрос про организацию раутинга
есть 3 стр
login, register, dashboard

хочу сделать компоненты 
родительский auth (т.к. есть общий html-код у детей) и 2 дочерних: login, register
плюс отдельный dashboard

нужно организовать переход между login <-> register 
после авторизации/регистрации переход в dashboard
после выхода переход в login

но не понимаю как, если общего html-кода (вроде навигации) между dashboard и auth - нет
11:08:02 ДП
User 60331718
User 65484181
вопрос про организацию раутинга
есть 3 стр
login, register, dashboard

хочу сделать компоненты 
родительский auth (т.к. есть общий html-код у детей) и 2 дочерних: login, register
плюс отдельный dashboard

нужно организовать переход между login <-> register 
после авторизации/регистрации переход в dashboard
после выхода переход в login

но не понимаю как, если общего html-кода (вроде навигации) между dashboard и auth - нет
Через хуки роутера
11:09:03 ДП
User 60331718
Или можешь в компоненте авторизации watch поставить
11:09:16 ДП
User 60331718
Если атаоризировалс редиректишь на дашборд
11:10:27 ДП
User 152816933
User 152816933
Никто не задавался вопросом, как добавлять дополнительные поля в объект опций компонента (который мы обычно отдаем на экспорт в однофайловых компонентах)? Что бы потом эти поля через this можно было вытащить.
Знаю, звучит странно, но я хочу отдельное поле :)
Мне в плагине нужно получить это поле.
11:13:33 ДП
User 152816933
User 152816933
Мне в плагине нужно получить это поле.
Я вижу this.$vnode.componentOptions.Ctor.options.MyField, но вот что за Ctor - че т не понятно)
11:33:53 ДП
User 55922194
Всем привет! Ребят подскажите пожалуйста про keep-alive в vue-router 0.7+, она вообще адекватно работает?
11:34:14 ДП
User 55922194
я наткнулся на такую штуку, что beforeDestroy() ивент не отрабатывает
11:34:17 ДП
User 55922194
и смене роута
11:35:05 ДП
User 55922194
ещё в доке наткнулся, что эта директива была экспериментальна и она не поддерживается..
11:36:31 ДП
User 55922194
https://github.com/vuejs/vue-router/blob/1.0/docs/en/view.md
github.com/vuejs/vue-router/blob/1.0/docs/en/view.md
vue-router - The official router for Vue.js.
11:43:29 ДП
User 65484181
User 60331718
Через хуки роутера
есть у меня шаблон авторизации (login)
в котором текст для авторизации, форма и ссылка на регу
есть другой шаблон - регистрации (register)
в котором текст для регистрации, форма и ссылка на авторизацию
так вот, как мне вывести тот или иной дочерний шаблон (те два, что выше) из родительского (auth)

почитал про хуки (https://router.vuejs.org/ru/advanced/navigation-guards.html), не нашел там как реализовать это
11:45:02 ДП
User 60331718
User 65484181
есть у меня шаблон авторизации (login)
в котором текст для авторизации, форма и ссылка на регу
есть другой шаблон - регистрации (register)
в котором текст для регистрации, форма и ссылка на авторизацию
так вот, как мне вывести тот или иной дочерний шаблон (те два, что выше) из родительского (auth)

почитал про хуки (https://router.vuejs.org/ru/advanced/navigation-guards.html), не нашел там как реализовать это
Просто сделай 2 пути /auth и /register где каждый на вход получает свой шаблон
11:45:57 ДП
User 65484181
т.е. если я укажу дочерний login, то еще отрендерится контент с родительского auth?
11:46:50 ДП
User 65484181
это разве логично?
11:48:34 ДП
User 60331718
User 65484181
т.е. если я укажу дочерний login, то еще отрендерится контент с родительского auth?
Ты контролируешь компоненты которые нужны для отрисовки через вложеность
11:49:02 ДП
User 60331718
Сейчас покажу
11:49:08 ДП
User 60331718
Комп включу только
11:50:26 ДП
11:50:47 ДП
User 112715267
о, кстате
надо юзануть такую темку
11:51:05 ДП
User 60331718
User 112715267
о, кстате
надо юзануть такую темку
какую?
11:51:36 ДП
User 112715267
1) именованные роуты
2) несколько компонентов
11:51:41 ДП
User 60331718
User 60331718
Ладно, прям сейчас задам
Я объявляю действие в отдельном файле actions.js вот так:

export const someAction = (...) => {} 

Потом импорчу его в index.js для нужного модуля:

import * as actions from 'modulr/index'

export default {
  namespased: true,
  ...
  actions,
  ...
}


Дальше в компоненте проксирую через mapActions(['module/someAction'])

И когда вызывают где-нибудь как this.someActions() то получаю ошибку, дескать она не является функцией

Почему так?
вот это все еще актуально
11:52:59 ДП
User 65484181
User 60331718
спасибо, попробую
11:53:09 ДП
User 60331718
User 136935602
CHANGE_NOTICE не имеет защиты от дурака, это опасно
я так подумал и решил в мутациях вообще проверки не делать, все вынес в actions
11:53:27 ДП
User 60331718
User 112715267
1) именованные роуты
2) несколько компонентов
оо, да ты в танке видимо
11:53:41 ДП
User 112715267
не, не в танке
11:53:46 ДП
User 112715267
я знаю эту темку, но не юзаю
11:54:18 ДП
User 60331718
User 112715267
я знаю эту темку, но не юзаю
зря зря, я так layout сделал, если нужно авторизация, то юзается одно, если нет - другое
11:54:21 ДП
User 60331718
оч удобно
11:54:33 ДП
User 112715267
ну это понятно
11:54:39 ДП
11:54:43 ДП
User 112715267
просто там, где я ща делаю, не дают открыть страницу, если не авторизован)
11:54:59 ДП
User 60331718
они используют один шаблон, просто в одном еще ватч добавлен
11:55:49 ДП
User 60331718
сейчас хочу с promis hell разобраться
11:55:55 ДП
User 60331718
а то шото фигня
12:05:47 ПП
User 60331718
User 60331718
вот это все еще актуально
уже не актуально
01:38:56 ПП
User 60331718
вчера кто-то говорил, что vue сам биндит методы, где вы это посмотрели в исходниках?
01:39:28 ПП
User 60331718
хочу разнезти функции и компоенту по разным файлам
01:41:32 ПП
User 136935602
не делает он такого
01:41:51 ПП
User 60331718
User 60331718
хочу разнезти функции и компоенту по разным файлам
а кто-то вообще так делает?
01:42:16 ПП
User 136935602
https://github.com/vuejs/vue/blob/dev/src/core/instance/state.js#L156-L167
github.com/vuejs/vue/blob/dev/src/core/instance/state.js
vue - A progressive, incrementally-adoptable JavaScript framework for building UI on the web.
01:42:27 ПП
User 136935602
ну да, в чем проблема - выносишь функции в другой файл и все
01:42:37 ПП
User 136935602
this подтянется нужный сам
01:42:50 ПП
User 184398046
User 55922194
Всем привет! Ребят подскажите пожалуйста про keep-alive в vue-router 0.7+, она вообще адекватно работает?
keep-alive - не удаляет отрендеренный роут (и его компоненты) а прячет, по этому destroy не срабатывает. Пользуйся lifecycle роутера 0.7 в компоненте, там было что-то вроде deactivate https://github.com/vuejs/vue-router/blob/1.0/docs/en/pipeline/hooks.md
01:42:55 ПП
User 60331718
User 136935602
this подтянется нужный сам
почему это произойдет?
01:43:05 ПП
User 136935602
потому что так работает this в JS
01:43:37 ПП
User 136935602
если ты вызываешь метод как a.foo то у foo будет this = a не зависимо от того, откуда первоначально взята foo
01:43:50 ПП
User 60331718
User 136935602
если ты вызываешь метод как a.foo то у foo будет this = a не зависимо от того, откуда первоначально взята foo
м, понял
01:43:51 ПП
User 136935602
конечно же если foo не стрелочная и не bind'нутая
01:44:02 ПП
User 55922194
User 184398046
keep-alive - не удаляет отрендеренный роут (и его компоненты) а прячет, по этому destroy не срабатывает. Пользуйся lifecycle роутера 0.7 в компоненте, там было что-то вроде deactivate https://github.com/vuejs/vue-router/blob/1.0/docs/en/pipeline/hooks.md
он тоже не отрабатывает, при активном keep-alive
01:44:08 ПП
User 55922194
энивей, ушёл от keep-alive
01:44:32 ПП
User 55922194
т.к. он experimental и сами разрабы не рекоммендуют его юзать, насколько я понял, в данной версии роутера
01:45:30 ПП
User 60331718
User 136935602
конечно же если foo не стрелочная и не bind'нутая
лучше использовать function expression или func declaration для этого?
01:45:39 ПП
User 136935602
это не имеет значения
01:45:50 ПП
User 60331718
лады, пасиба
01:54:55 ПП
User 184398046
User 136935602
не делает он такого
Почему же не биндит?
https://github.com/vuejs/vue/blob/2b67eeca4d7ae14838982b5f0163fb562ea51bdd/src/core/instance/state.js#L156
github.com/vuejs/vue/blob/2b67eeca4d7ae14838982b5f0163fb562ea51bdd/src/core/instance/state.js
vue - A progressive, incrementally-adoptable JavaScript framework for building UI on the web.
01:55:28 ПП
User 136935602
лол, я слепой :)
01:55:38 ПП
User 136935602
присваивание увидел а вызов функции bind не увидел
01:55:53 ПП
User 136935602
спасибо
01:56:17 ПП
User 136935602
впрочем в контексте задаваемого вопроса это совершенно не важно - а биндит он чтобы у нас не терялся контекст когда из view вызывается
01:57:51 ПП
User 184398046
это да... и контекст понял, что нет понятие как рабоатет js объекты.. но все же стоит уточнить ради понимания
01:59:03 ПП
User 136935602
да, в любом случае спасибо (:
01:59:37 ПП
User 184398046
кстати, впервые влез в исходники vue2... Частенькоо лазил в Vue 0.11, 0.12 - там все было по другому ))) Но поучиться мне очень много есть чему )))
02:01:47 ПП
User 136935602
vue2 неплохо причесали именно в контексте декомпозиции кусков системы и т.д.
02:02:41 ПП
User 136935602
хотя вот проблема такая же как с Angular 1.[
02:02:52 ПП
User 136935602
можно писать на Vue неплохо, не понимая как работает JS :)
02:04:14 ПП
User 184398046
После Эмбера копание в исходниках у меня в крови 😭
02:05:08 ПП
User 85413039
User 136935602
можно писать на Vue неплохо, не понимая как работает JS :)
я так собеседование не прошле
02:05:13 ПП
User 85413039
не прошел)))
02:05:14 ПП
User 184398046
Vue тем плох что как jQuery - сел и наговнакодил, потому что легко начать. Но тем же и хорош - легко обучить
02:05:33 ПП
User 60331718
User 136935602
можно писать на Vue неплохо, не понимая как работает JS :)
Да просто я помню, что пару дней назад пытался это же провернуть, но что-то не получалось
02:08:35 ПП
User 234491501
User 184398046
После Эмбера копание в исходниках у меня в крови 😭
Ембер няшный и все еще жив.
02:09:32 ПП
User 184398046
Ага, жив, все еще пилим на нем проект. Слава богу не Ангуляр )))
02:10:39 ПП
User 234491501
Слава не React 😃
02:11:43 ПП
User 60331718
впрочем сейчас тоже самое

в файле methods.js создаю:
export function myFubc(...) {...}

дальше импортирую его в index.js:
import 'method'

export default {
   ...
  methods: {
    ...
    myFunc,
    ...
  }
   ...
}
и получаю ошибку, что это не функция, что не так?
02:12:09 ПП
User 184398046
в то время реакт только-только начинался и лицензия буээээ....
02:12:25 ПП
User 136935602
потому что export default function myFunc
02:13:28 ПП
User 184398046
или
import { myFunc } from './methods'
02:13:40 ПП
User 136935602
Решил запилить лекцию по Vue у себя в городе. :)
02:13:50 ПП
User 136935602
Будем популяризировать
02:15:58 ПП
User 60331718
User 184398046
или
import { myFunc } from './methods'
хм, а если я буду экспортить сразу структурку methods?
02:16:14 ПП
User 136935602
Тогда export default и без фигурных
02:16:47 ПП
User 60331718
User 136935602
Тогда export default и без фигурных
без?
02:17:09 ПП
User 136935602
Без подтягивает default export
02:17:10 ПП
User 184398046
а зачем в отдельный файл? Может тогда mixin - там можно и methods
02:17:45 ПП
User 60331718
User 184398046
а зачем в отдельный файл? Может тогда mixin - там можно и methods
просто компонента довольно жирненькая получается а каждый раз смотреть на эту вериницу отсупов - бесит
02:18:10 ПП
User 184398046
так сверни, у тебя же IDE
02:18:40 ПП
User 60331718
User 184398046
так сверни, у тебя же IDE
не, ты не понял, я про то что там +2 табуляции, а если в отдельном файле то их нет
02:19:19 ПП
User 60331718
User 136935602
Без подтягивает default export
а, все, понял про что ты
02:19:36 ПП
User 136935602
Я так стору режу
02:19:45 ПП
User 136935602
Экшны, мутации и тд в отдельном файле
02:20:02 ПП
User 60331718
User 60331718
а, все, понял про что ты
во
02:20:24 ПП
User 85413039
коллеги, норм слайдер посоветутйе, чтобы мог и фото файлы и видео
02:20:28 ПП
User 60331718
User 136935602
Я так стору режу
ога, я тоже так же начал делать, вчерашний модуль уведомлений так разнес
02:20:55 ПП
User 60331718
кстати все проверки из мутаций вообще убрал
02:21:01 ПП
User 60331718
все в действия занес
02:21:07 ПП
02:21:38 ПП
User 60331718
почему так? почему в auth не сделать index и там все импортить
02:21:48 ПП
User 60331718
потом в хранилище подтягивать модули уже
02:21:55 ПП
02:22:16 ПП
User 136935602
А он и есть - только он называется не index а auth-module
02:22:20 ПП
User 136935602
и назван так вполне осознанно
02:22:42 ПП
User 136935602
потому что когда у тебя в IDE открыто миллиард файлов с именем index.js - навигироваться по ним неудобно
02:22:55 ПП
User 136935602
поэтому файлы осознанно префикснуты именем модуля
02:23:08 ПП
User 136935602
а не просто actions, state, mutations и т.д.
02:23:10 ПП
User 60331718
User 136935602
потому что когда у тебя в IDE открыто миллиард файлов с именем index.js - навигироваться по ним неудобно
у меня де тогда еще просто близжайшую родительскую папку подтягивает
02:23:27 ПП
User 136935602
Как и у всех, но это не мешает СИЛЬНО ухудшать удобство навигации
02:23:47 ПП
User 60331718
хм, логично, пожалуй у себя тоже переименую
02:23:56 ПП
User 136935602
это мои тараканы
02:24:05 ПП
User 60331718
User 136935602
это мои тараканы
тогда не буду :D
02:25:39 ПП
User 60331718
не, на самом деле переименую, люблю когда структура папок понятна
02:26:56 ПП
User 136935602
о, у меня уже 22 человека на лекцию зарегистрировалось. Похоже народу таки любопытен Vue :) наверное опять полный зал будет (:
02:28:50 ПП
User 56924675
чо за лекция
02:29:28 ПП
User 136935602
это в Харькове, местечковая тусовочка
02:32:53 ПП
User 60331718
вот и как такое отлавливать?
02:34:47 ПП
User 136935602
он просто не нашел файл ./notice-module
02:35:17 ПП
User 136935602
такое ловится в том числе eslint-plugin-import, я не знаю - он помойму настроен в дефолтном шаблоне
02:35:30 ПП
User 136935602
ну и flow (:
02:35:45 ПП
User 152816933
User 136935602
такое ловится в том числе eslint-plugin-import, я не знаю - он помойму настроен в дефолтном шаблоне
да, в webpack шаблоне есть проверка импортов
02:36:45 ПП
User 60331718
но ведь у меня был корректный импорт
02:37:09 ПП
User 60331718
вернул обратно название на index.js и все заработало
02:37:23 ПП
User 184398046
уверен что не опечатался?
02:37:35 ПП
User 60331718
не, использовалось автодополнение
02:38:01 ПП
User 60331718
web-strom shift+f6 для рненейма
02:38:02 ПП
User 184398046
*.js - добавлял?
02:38:12 ПП
User 60331718
User 184398046
*.js - добавлял?
при импорте? нет
02:39:47 ПП
User 136935602
и не надо :)
02:40:22 ПП
User 60331718
жаль что не работает, но да ладно :D
02:41:12 ПП
User 136935602
оно работает. просто где-то у тебя ошибка
02:41:22 ПП
User 136935602
Ну в смысле это же не магия, это обычные es2015 import
02:42:49 ПП
User 60331718
User 136935602
оно работает. просто где-то у тебя ошибка
я уже и ручками и rename использовал - результат тот же
02:43:05 ПП
User 136935602
ну покажи мне структуру своих папок, и как пишешь import
02:45:16 ПП
User 60331718
`import noticesStore from './modules/notices/index'`
02:45:29 ПП
02:47:13 ПП
User 60331718
а вот с notice-module
02:52:55 ПП
User 60331718
User 136935602
потому что export default function myFunc
так, а если мне нужно много функций экспортировать? это ведь штука работать не будет
02:53:13 ПП
User 136935602
ну тогда экспортируешь их именованными
02:53:25 ПП
User 136935602
export function foo
02:53:28 ПП
User 136935602
import { foo }
02:53:52 ПП
User 60331718
User 136935602
import { foo }
просто import './methods' не прокатит?
02:54:02 ПП
User 136935602
конечно нет. что ты импортировать будешь?
02:54:31 ПП
User 60331718
м, понял, такое прокатит если бы там был export default а так как его там нет, то и импортиться ничего не будет
02:55:24 ПП
User 136935602
http://frontender.info/es6-modules/
frontender.info/es6-modules
Как известно, в ECMAScript 6, следующей версии JavaScript, будет включена работа с модулями. В этой статье затронуты в первую очередь принципы работы модулей в ECMAScript 6. Также дается описание инструментов, которые позволяют вам сейчас использовать ECMAScript 6 модули.
02:59:49 ПП
User 60331718
там не рассказано, почему import * from 'something' не прокатывает?
03:01:19 ПП
User 184398046
потосу что не валидный синтаксис, забыл
* as modulename
03:03:02 ПП
User 60331718
User 184398046
потосу что не валидный синтаксис, забыл
* as modulename
просто export * работает, а испортнуть так нельзя
03:03:05 ПП
User 60331718
пичаль
03:03:40 ПП
User 184398046
import './modulename'
тоже работает, но не так как ты хочешь
03:05:32 ПП
User 136935602
export * тоже не ок, если честно
03:07:01 ПП
User 112715267
а кстати
03:07:05 ПП
User 112715267
зачем приписывать
03:07:07 ПП
User 112715267
export DEFAULT
03:07:16 ПП
User 112715267
что оно дает
03:08:32 ПП
User 60331718
чтобы потом где-то ручками не прописывать что импортировать, если импортить кроме него из файла больше нечего
03:08:40 ПП
User 60331718
кароч это просто синтаксический сахар
03:08:43 ПП
User 60331718
как я понял
03:08:56 ПП
User 112715267
как-то бредовенько
03:09:04 ПП
User 136935602
нет, очень удобно
03:09:09 ПП
User 136935602
import React from 'react';
03:09:10 ПП
User 112715267
все равно можно написать
export default {a:1,b:2}
03:09:13 ПП
User 136935602
вытащить реакт из реакта
03:09:17 ПП
User 112715267
а потом import {a,b} from 'aaaa.js'
03:09:22 ПП
User 136935602
import React, { PropTypes } from 'react';
03:09:28 ПП
User 136935602
User 112715267
а потом import {a,b} from 'aaaa.js'
не сработает :)
03:09:32 ПП
User 112715267
разве?
03:09:39 ПП
User 136935602
срабатывало во времена babel5 потому что у них была неправильная реализация модулей
03:09:46 ПП
User 112715267
понял
03:09:50 ПП
User 112715267
пардоньте
03:09:51 ПП
User 112715267
вопрос отпал
03:10:06 ПП
User 136935602
в этом и суть - в import { ... } - это не деструктуризация
03:10:59 ПП
User 60331718
User 136935602
import React, { PropTypes } from 'react';
мм, клевое пояснение кстати 👍🏻
03:14:50 ПП
User 60331718
похоже у разноса фунции есть положиетльные плюшки:
например не нужно обращаться к методу как this.myMethod(), а можно непосредственно как myMethod() (но это не точно :В )
03:15:23 ПП
User 136935602
если ты не используешь this  - то да можно
03:15:36 ПП
User 136935602
если же у тебя используется this внутри функции - то только this.myMethod
03:15:44 ПП
User 60331718
👍🏻👍🏻 клаасс
03:16:08 ПП
User 112715267
Это вы о чем
03:16:09 ПП
User 136935602
Более того, если у тебя эти функции не дергаются из шаблона (А у  тебя и шаблона то нет), то их и не надо добавлять в methods компонента (зачем?)
03:18:53 ПП
User 60331718
логичный вопрос, однако
03:20:05 ПП
User 60331718
да, пожалуй надо будет переделать
03:21:53 ПП
User 60331718
как будет выглядет ьобращение к геттеру namespased модуля у хранилища?
03:23:22 ПП
User 60331718
store.getters.a.getSomethig?
03:23:31 ПП
User 136935602
store.getters.a.getSomething
03:24:15 ПП
User 60331718
пасиба
03:25:09 ПП
User 136935602
а вообще с этим неймспейсингом грязь
03:25:38 ПП
User 136935602
С одной стороны - просто сливать все в store.getters плохо - конфликты имен разных модулей разработанных разными людьми и т.д.
03:26:16 ПП
User 136935602
С другой стороны - если все неймспейсить теряется очень важная фишка хранилища о которой мало кто задумывается - возможность реагировать на одну мутацию в разных модулях хранилища
03:26:38 ПП
User 136935602
А это важно. Простейший пример - на мутацию LOGOUT реагирует хреналлиард модулей хранилища, настраивая себя
03:26:59 ПП
User 136935602
Но если делать часть модулей namespaced, часть нет - получается еще хуже. Оккам негодует
03:27:24 ПП
User 60331718
User 136935602
Но если делать часть модулей namespaced, часть нет - получается еще хуже. Оккам негодует
но ведь у нас же есть доступ к rootState
03:27:46 ПП
User 60331718
но да я согласен, поэтому только независмые модули в namespased заношу
03:27:55 ПП
User 136935602
А тут тоже неприятный нюанс
03:28:12 ПП
User 60331718
User 136935602
store.getters.a.getSomething
store.getters['a/getSomething']
03:28:30 ПП
User 136935602
Представь себе, что я хочу каждый раз когда отправляю нотификацию делать запись в лог куда-нибудь на сервере (простейший пример - гуглоаналитика)
03:28:52 ПП
User 136935602
так бы я мог это сделать отдельным модулем Vuex который реагирует на теже события
03:29:39 ПП
User 136935602
Хотя с гуглоаналитикой отдельная история - с одной стороны оно может быть привязано к Vuex, с другой стороны не очень
03:29:53 ПП
User 136935602
вобщем тема side-effects во Vuex пока не раскрыта чуть-более чем полностью
03:31:12 ПП
User 60331718
ну, так как пока что я не особо знакомился с межмодульным взаимодействием в vuex, то парить пока не буду, хотя за идею спасибо, надо будет обмозговать пару дней
03:33:03 ПП
User 136935602
это скорее вопрос в пустоту, может кто мыслями поделится
03:47:53 ПП
User 65484181
https://gist.github.com/tufedtm/9126d375f35b0b2b270544061507afc9
падает с ошибкой [Vue warn]: Unknown custom element: <dashboard-header> - did you register the component correctly? For recursive components, make sure to provide the "name" option. (found in anonymous component at Dashboard.vue)

их что, еще и в Dashboard.vue надо импортировать и регистрировать?
gist.github.com/tufedtm/9126d375f35b0b2b270544061507afc9
03:49:05 ПП
User 60331718
User 65484181
https://gist.github.com/tufedtm/9126d375f35b0b2b270544061507afc9
падает с ошибкой [Vue warn]: Unknown custom element: <dashboard-header> - did you register the component correctly? For recursive components, make sure to provide the "name" option. (found in anonymous component at Dashboard.vue)

их что, еще и в Dashboard.vue надо импортировать и регистрировать?
gist.github.com/tufedtm/9126d375f35b0b2b270544061507afc9
а где ты прописал, name для своей компоненты?
03:49:28 ПП
User 60331718
покажи логику из dashboard.vue
03:49:40 ПП
User 136935602
User 65484181
https://gist.github.com/tufedtm/9126d375f35b0b2b270544061507afc9
падает с ошибкой [Vue warn]: Unknown custom element: <dashboard-header> - did you register the component correctly? For recursive components, make sure to provide the "name" option. (found in anonymous component at Dashboard.vue)

их что, еще и в Dashboard.vue надо импортировать и регистрировать?
gist.github.com/tufedtm/9126d375f35b0b2b270544061507afc9
Да, надо
03:49:42 ПП
User 136935602
И это хорошо
03:50:13 ПП
User 65484181
User 60331718
покажи логику из dashboard.vue
в Dashboard.vue только template
03:50:38 ПП
User 60331718
вот для него покажи dashboard-header
03:51:22 ПП
User 65484181
User 136935602
И это хорошо
ну тут код дублировать приходится
03:51:38 ПП
User 136935602
Какой?
03:51:50 ПП
User 60331718
почему ты используешь и то и то?
        component: DashboardContent,
        components: {
          DashboardHeader,
          DashboardSidebar
        }
03:52:37 ПП
User 65484181
в vue нельзя расширять родительский шаблон и его рендерить?
03:52:56 ПП
User 136935602
Можно
03:53:23 ПП
User 136935602
Но писать правильно надо
03:53:37 ПП
User 60331718
User 136935602
Можно
если есть пример, то можешь кинуть?
03:53:38 ПП
User 65484181
User 136935602
Какой?
<script>
  import * as DashboardHeader from './DashboardHeader.vue';
  import * as DashboardSidebar from './DashboardSidebar.vue';
  import * as DashboardContent from './DashboardContent.vue';

  export default {
      components: {
        DashboardHeader,
        DashboardSidebar,
        DashboardContent
      }
  }
</script>это добавил в Dashboard.vue
но это дубль и route
03:54:00 ПП
User 136935602
И помогло?  :)
03:54:05 ПП
User 65484181
User 60331718
почему ты используешь и то и то?
        component: DashboardContent,
        components: {
          DashboardHeader,
          DashboardSidebar
        }
думал рендерить DashboardContent через router-view
03:54:23 ПП
User 60331718
User 65484181
думал рендерить DashboardContent через router-view
я так и делаю
03:54:40 ПП
03:55:27 ПП
User 65484181
User 136935602
Можно
а как?
03:55:31 ПП
User 136935602
Мне кажется ошибка должна была остаться даже после дублирования,  или я не прав?
03:56:14 ПП
User 136935602
Ты напутал компоненты вью и именованный роутинг
03:57:44 ПП
03:57:47 ПП
03:57:58 ПП
User 65484181
сейчас так и работает
03:58:22 ПП
User 136935602
Выкинуть из dashboard.vue
03:58:28 ПП
User 60331718
User 65484181
где name у компоненты?
03:58:41 ПП
User 136935602
И вместо <dashboard-header
03:59:31 ПП
User 136935602
<router-view name="dashboard-header">
03:59:51 ПП
User 136935602
Это если ты хочешь компоненты в роутах перечислять
03:59:57 ПП
User 65484181
User 60331718
где name у компоненты?
name становится равен компоненту ведь?
04:00:19 ПП
User 60331718
User 65484181
name становится равен компоненту ведь?
хм, пойду читать доки
04:00:20 ПП
User 136935602
Забейте на name, он глубоко опционален
04:01:00 ПП
User 55423102
Name необходим только если рекурсивно тот же компонент нужно будет вызывать
04:01:08 ПП
User 136935602
Но вообще для сценариев дашбоард-футер-контент лучше вложенные роуты использовать
04:01:14 ПП
User 136935602
А не именованные
04:01:14 ПП
04:01:31 ПП
User 60331718
еще и помощь в отладке
04:01:31 ПП
User 65484181
User 60331718
хм, пойду читать доки
это в es6 такое добавили в объекты
нет?
04:01:47 ПП
User 136935602
User 65484181
это в es6 такое добавили в объекты
нет?
Вы обо разных вещах говорите
04:02:13 ПП
User 136935602
Один о name в определении компонентов,  второй о имени при подключении
04:04:50 ПП
User 60331718
User 136935602
Один о name в определении компонентов,  второй о имени при подключении
как я понял, я о втором?
04:04:55 ПП
04:05:12 ПП
User 136935602
ES2015 Object Shorthand syntax
04:05:21 ПП
User 65484181
User 136935602
<router-view name="dashboard-header">
сделал так все 3 компонента
удалил содержимое тега script из Dashboard.vue
ошибок нет, но и не рендерится ничего
04:05:46 ПП
User 136935602
В роутинге поправь components
04:06:15 ПП
User 136935602
'dashboard-header': DashboardHeader
04:06:47 ПП
User 136935602
я не уверен что имена из camelcase в черточки перегоняются
04:07:04 ПП
User 136935602
А ещё component выкинуть из роута
04:07:20 ПП
User 136935602
И в components сунуть
04:07:31 ПП
User 136935602
default: Dashboard
04:07:40 ПП
User 60331718
User 136935602
А ещё component выкинуть из роута
воот, я тоже удивился от этого
04:07:59 ПП
User 136935602
Может оно и работает
04:08:12 ПП
User 136935602
Но неочевидные штуки не для меня
04:09:47 ПП
User 65484181
User 136935602
default: Dashboard
{
    path: '/dashboard',
    children: [
      {
        path: '',
        name: 'dashboard',
        components: {
          default: Dashboard,
          'dashboard-header': DashboardHeader,
          'dashboard-sidebar': DashboardSidebar,
          'dashboard-content': DashboardContent
        }
      }
    ]
  },т.е. так?
04:10:05 ПП
04:10:22 ПП
User 136935602
Неясно зачем там children, будем считать на будущее
04:11:09 ПП
User 136935602
Пустой экран :)
04:11:15 ПП
User 65484181
именно, пустой
04:11:35 ПП
User 60331718
User 65484181
именно, пустой
покажи код компоненты для хедера
04:11:43 ПП
User 136935602
Секунду
04:11:55 ПП
User 136935602
Неудобно с телефона в метро объяснять
04:12:04 ПП
User 60331718
и зачем вам default если у него такого роутервью нету?
04:12:12 ПП
04:12:54 ПП
User 136935602
User 65484181
именно, пустой
А терпеть выкинь default и напиши на верхнем уровне component: Dashboard
04:13:00 ПП
User 65484181
User 60331718
покажи код компоненты для хедера
там просто template и style
никакой логики
04:14:10 ПП
User 65484181
User 136935602
Выкинуть из dashboard.vue
так я удалил script из Dashboard.vue
04:14:28 ПП
User 136935602
{
    path: '/dashboard',
    component: Dashboard,
    children: [
      {
        path: '',
        name: 'dashboard',
        components: {
          'dashboard-header': DashboardHeader,
          'dashboard-sidebar': DashboardSidebar,
          'dashboard-content': DashboardContent
        }
      }
    ]
  },
04:14:30 ПП
User 65484181
User 65484181
там просто template и style
никакой логики
как и в остальных компонентах
04:15:03 ПП
User 136935602
Так должно сработать
04:15:22 ПП
User 65484181
работает
04:15:39 ПП
User 136935602
Но см. выше
04:16:35 ПП
User 136935602
Но вообще для сценариев дашбоард-футер-контент лучше вложенные роуты использовать
04:16:50 ПП
User 136935602
А не именованные
04:17:24 ПП
User 136935602
Вообще 90% сценариев покрываются вложенными роутамм
04:18:41 ПП
User 60331718
я именовынные роуты пишу, чтобы потом, в случае изменения путей не править в куче различных комнонентах
04:20:16 ПП
User 136935602
В случае с вложенными роутами у тебя будет плюс минус один компонент их использующий
04:20:44 ПП
User 136935602
У меня есть layout, который использует хедер футер и два сайдбара, остальное вложено в него
04:20:52 ПП
User 136935602
Ну кроме к примеру логина и регистрации
04:22:18 ПП
User 60331718
User 60331718
вот так как у меня?
04:23:47 ПП
User 136935602
Нет, у Меня в роутах просто components нет
04:23:54 ПП
User 136935602
Только в самом компоненте
04:24:29 ПП
User 136935602
Но это уже вкусовщина
04:25:02 ПП
User 60331718
не, я не буду их туда заносить, ибо это будет противоречить моей структуре проекта
04:25:15 ПП
User 60331718
User 60331718
не, я не буду их туда заносить, ибо это будет противоречить моей структуре проекта
тут все компоненты что добавлены - глобальные
04:25:31 ПП
User 136935602
Это сейчас они "глобальные"  :)
04:25:51 ПП
User 60331718
но надо будет влеженность повысить, чтобы постоянно их не прописывать
04:25:59 ПП
User 136935602
И какие ж они глобальные если Auth без них живет
04:26:24 ПП
User 60331718
User 136935602
И какие ж они глобальные если Auth без них живет
ну там они просто не нужны
04:26:38 ПП
User 136935602
На самом деле мне просто кажется странным использовать router-view для компонента,  который всегда один и тот же
04:26:45 ПП
User 136935602
Типа да, можно, но зачем
04:26:56 ПП
User 60331718
я про вот такую структурку папок
04:27:29 ПП
User 60331718
User 136935602
Типа да, можно, но зачем
хм, может действительно стоит затащить их сразу в layout
04:28:22 ПП
User 136935602
Оккам одобряет
04:28:36 ПП
User 136935602
Это я вчера видел человека у которого все компоненты асинхронные. Потому что может
04:28:55 ПП
User 60331718
User 136935602
Это я вчера видел человека у которого все компоненты асинхронные. Потому что может
мне это трудно представить
04:29:09 ПП
User 60331718
я тут пока в яслях еще гуляю :D
04:30:25 ПП
User 136935602
В доке есть. Это очень важная штука чтобы не грузить пользователю весь бандл а наоборот приложение по частям грузить
04:35:04 ПП
User 65484181
насчет расширения шаблона
, поясню
могу ли я в раутере указывать component: Child без children
а в Child написать что-то вроде extend Parent

т.е. у меня есть 2 стр
dashboard и settings
и я это вижу как прописать в
dashboardContent.vue - extend dashboard.vue
dashboardSettings.vue - extend dashboard.vue

а в dashboard.vue уже инклудить хедер/футер
04:35:20 ПП
User 136935602
Не так
04:35:48 ПП
User 136935602
Ты просто в dashboard.vue вставляешь <router-view>
04:36:13 ПП
User 136935602
А settings делаешь дочерним роутом и рендеришь только нужный кусок
04:36:37 ПП
User 136935602
И он вставится в шаблон дашбоарда на место роутер вью
04:36:43 ПП
User 65484181
но в данном случае у меня хардкод с <router-view name="dashboard-content"></router-view>
04:37:02 ПП
User 136935602
Бекендщик? Пахнет jade/pug/twig логика :)
04:37:16 ПП
04:37:16 ПП
User 136935602
Убери имя у этого router-view
04:37:20 ПП
User 60331718
User 136935602
В доке есть. Это очень важная штука чтобы не грузить пользователю весь бандл а наоборот приложение по частям грузить
можешь тыкнуть?
04:37:31 ПП
User 136935602
Не могу, я с калькулятора сижу
04:37:40 ПП
User 136935602
В английской доке Async Components
04:37:44 ПП
User 136935602
В русской хз
04:41:04 ПП
User 65484181
User 136935602
Убери имя у этого router-view
как я понял component и components вместе не работают
и непонятно, что будет рендерить просто <router-view>
04:41:41 ПП
User 136935602
Правильно
04:42:01 ПП
User 136935602
Ты в своих settings просто скажешь component: settings
04:42:19 ПП
User 136935602
Тебе components не нужны будут
04:45:50 ПП
User 55423102
User 60331718
можешь тыкнуть?
Компоненты - Разное - Асинхронные компоненты
04:46:04 ПП
User 55423102
Ближе к концу длинного списка подразделов
04:46:23 ПП
User 65484181
User 136935602
Ты в своих settings просто скажешь component: settings
не понимаю, что за settings
04:46:27 ПП
User 60331718
User 55423102
Компоненты - Разное - Асинхронные компоненты
а, все, понял, это в руководстве, а я api смотрю
04:47:11 ПП
User 136935602
User 65484181
не понимаю, что за settings
Твой компонент
04:47:24 ПП
User 136935602
Ко ррый ты внутри дашбоарда хочешь рисовать
04:47:31 ПП
User 136935602
В контент зоне
04:49:33 ПП
User 60331718
я вот кстати так и не понял, когда используется Vue.component()? ни разу его не использовал, зачем оно нужно?
04:49:54 ПП
User 136935602
Чтобы регистрировать компоненты глобально
04:50:04 ПП
User 136935602
К примеру когда ты без вебпака работаешь
04:50:17 ПП
User 60331718
м, все, понял
04:51:16 ПП
User 136935602
За тебя это vue-loader делает
04:51:43 ПП
User 60331718
надо будет попросить ребят из вью, чтобы они пример на асинхронные компоненты запилили
04:51:51 ПП
User 112715267
То чувство, когда по тупости первое время писал вместе с вебпаком
04:53:31 ПП
User 60331718
Илья, а есть смысл разносить mutation-types по модулям? или все в один файл пихать?
04:54:52 ПП
User 136935602
Ответ простой
04:55:18 ПП
User 136935602
Ты держишь все в одном файле пока оно не перестаёт помещаться в мозгу
04:57:11 ПП
User 65484181
можете скинуть свой пример с layout'ами?
а то я все-равно не понимаю как это сделать
04:58:26 ПП
User 60331718
User 65484181
можете скинуть свой пример с layout'ами?
а то я все-равно не понимаю как это сделать
ога, ща кину
05:01:57 ПП
User 60331718
User 65484181
можете скинуть свой пример с layout'ами?
а то я все-равно не понимаю как это сделать
https://gist.github.com/Fl0pZz/53e1be9cc23bfa55209e4d95a3e70ea8
gist.github.com/Fl0pZz/53e1be9cc23bfa55209e4d95a3e70ea8
05:33:50 ПП
User 65484181
User 60331718
https://gist.github.com/Fl0pZz/53e1be9cc23bfa55209e4d95a3e70ea8
gist.github.com/Fl0pZz/53e1be9cc23bfa55209e4d95a3e70ea8
спасибо, кажется понял
05:36:52 ПП
User 60331718
если у меня есть глобальная константа и я могу ее как-то в шаблон пропихнуть?
05:37:30 ПП
User 60331718
напрмире так:
<div v-if="action === nActionTypes.CLOSE">?
05:41:52 ПП
User 55423102
Мне кажется лучше сделать computed с оной. Чтобы явно видеть что используется и не встречать таких внезапных глобальных переменных
05:42:11 ПП
User 55423102
Да и в v-if чем-то более читаемым обозвать можно будет
05:44:11 ПП
User 60331718
User 55423102
Мне кажется лучше сделать computed с оной. Чтобы явно видеть что используется и не встречать таких внезапных глобальных переменных
но ведь констант может быть много
05:44:30 ПП
User 60331718
User 55423102
Да и в v-if чем-то более читаемым обозвать можно будет
не, она понятна в контексте)
05:44:42 ПП
User 152816933
User 60331718
но ведь констант может быть много
передавай объект
05:46:32 ПП
User 60331718
но computed требует функцию:
https://ru.vuejs.org/v2/api/#computed
а у меня объект
ru.vuejs.org/v2/api
Vue.js — Прогрессивный JavaScript-фреймворк
05:46:47 ПП
User 55423102
Компьютед возвращает результат твоего сравнения
05:47:25 ПП
User 60331718
все, понял, ща подумаю
05:48:07 ПП
User 55423102
И в шаблоне логики не будет, а будет что-то логичное v-if needShow или что-то вроде такого
05:49:54 ПП
User 55423102
Решишь усложнять когда показывать в первом случае у тебя или в шаблоне каша начнётся или тоже выносить придётся. Если сразу писать работы в итоге меньше. Да и комментариев на всякие хитрые случае дописать можно где, если потребуется
05:51:09 ПП
User 60331718
угу,  понял, спасибо
05:51:31 ПП
User 60331718
в конце концов названия функци можно генерировать, если констант будет много
05:55:32 ПП
User 60331718
хм, а есть возможность динамисески подкинуть компоненту через jQuery?
05:55:47 ПП
User 55423102
Не понял что ты хочешь сделать
05:56:49 ПП
User 60331718
а потом этот результат закидываем в Materislize.totast(createNotification(notice), time)?
05:57:01 ПП
05:58:43 ПП
User 55423102
Так не заработает. У тебя все соберётся в js render-функцию
05:58:50 ПП
User 55423102
И потом уже никакого шаблона нет
06:00:19 ПП
User 55423102
А что ты хочешь сделать в notice?
06:00:28 ПП
User 60331718
значит каким-никаким костылем будет:
где-нибудь отрисовывать эту компоненту (сдисплей hidden), а потом копировать и вставлять в тосту?
06:00:56 ПП
User 60331718
в черном квадратике должно быть уведомление
06:01:47 ПП
User 55423102
Ну так текст туда и ок
06:02:23 ПП
User 60331718
User 55423102
Ну так текст туда и ок
но так у меня там еще свистелки перделки должны быть:
кнопочка закрыть (может быть, а может и не быть)
06:02:46 ПП
User 55423102
Ну шаблон уже генерит сам плагин тоста как я понимаю
06:03:00 ПП
User 55423102
А тебе нужно лишь вызывать его метод с нужными опциями
06:03:15 ПП
User 60331718
User 55423102
Ну шаблон уже генерит сам плагин тоста как я понимаю
http://materializecss.com/dialogs.html
materializecss.com/dialogs.html
Materialize is a modern responsive CSS framework based on Material Design by Google.
06:03:40 ПП
06:03:41 ПП
User 60331718
а вот что я хочу туда пихать:
06:04:19 ПП
06:04:21 ПП
User 112715267
Рафик
06:04:27 ПП
User 55423102
Тост с действием 😃
06:04:30 ПП
User 112715267
Ты што ле с промисами колдуешь?
06:04:57 ПП
User 60331718
User 55423102
Тост с действием 😃
про ты Callback?
06:05:16 ПП
User 55423102
Про какой-то частичный перевод на странице)
06:05:19 ПП
User 60331718
User 112715267
Ты што ле с промисами колдуешь?
м?
06:05:33 ПП
User 112715267
Забавно, что раньше статьи были про "callback hell"
Потом придумали промисы, якобы панацея
И теперь везде статьи про "promise hell"
06:05:36 ПП
User 60331718
User 55423102
Про какой-то частичный перевод на странице)
всем лень, да там и так все понятно, а вот примеры корявые
06:05:51 ПП
User 112715267
А потом будут статьи про "async/await hell"
06:05:56 ПП
User 55423102
fetch hell
06:06:03 ПП
User 112715267
fucking hell
06:06:11 ПП
User 60331718
User 112715267
Забавно, что раньше статьи были про "callback hell"
Потом придумали промисы, якобы панацея
И теперь везде статьи про "promise hell"
потому что делают их неправильно, просто return значение и все
06:06:42 ПП
User 112715267
я просто return promise
06:06:46 ПП
06:07:06 ПП
User 60331718
и типо поэтмоу в then нужно еще if ставить на проверку, что success
06:07:11 ПП
User 60331718
говно карочи
06:07:36 ПП
User 60331718
User 60331718
так что делать то?
06:07:57 ПП
User 112715267
User 60331718
говно карочи
сук)0)
06:08:15 ПП
User 60331718
User 60331718
так что делать то?
конечно можно ее в функции генерить, но как-то некрасиво получается
06:13:10 ПП
User 55423102
@Fl0pZz а это пробовал? https://paulpflug.github.io/vue-materialize/#!/toaster
06:13:50 ПП
User 60331718
не, ща попробую
06:13:53 ПП
User 55423102
хотя там тоже текст только подставить предлагают
06:14:14 ПП
User 55423102
ты из простенькой нотификации хочешь список с кнопкой еще сделать)
06:14:27 ПП
User 112715267
https://medium.com/@pyrolistical/how-to-get-out-of-promise-hell-8c20e0ab0513#.okiu31vus
medium.com/@pyrolistical/how-to-get-out-of-promise-hell-8c20e0ab0513
Unlike Callback Hell, Promise Hell is accidentally self inflicted. Promise Hell is just a lack a familiarity with Promises.
06:14:30 ПП
User 112715267
Годная статейка
06:14:41 ПП
User 60331718
User 112715267
Годная статейка
уже кидал сегодня
06:14:43 ПП
User 60331718
вроде
06:14:48 ПП
06:15:07 ПП
User 60331718
User 55423102
@Fl0pZz а это пробовал? https://paulpflug.github.io/vue-materialize/#!/toaster
чет ради одной тосты тянуть это не хочется)
06:15:12 ПП
User 112715267
Medium часто появляется в моей жизни в последнее время
06:15:13 ПП
User 60331718
проще самому потом накостылять
06:15:20 ПП
User 112715267
Чаще stackoverflow даже
06:15:38 ПП
User 55423102
@kelin2025 звучит будто к гадалке ходишь
06:16:04 ПП
06:17:53 ПП
User 60331718
User 60331718
конечно можно ее в функции генерить, но как-то некрасиво получается
ну ладно, впрочем сделал так
06:18:04 ПП
06:18:46 ПП
User 60331718
осталось еще кое-что допилить и стек уведомлений будет готов, парапам
06:19:01 ПП
User 60331718
а не, без компоненты это не получится сделать :\
06:19:11 ПП
User 112715267
Сделай
06:19:29 ПП
User 112715267
name.charAt(0).toUpperCase() + name.slice(1)
06:19:32 ПП
User 112715267
для полей
06:20:04 ПП
User 60331718
я должен буду изменять то что написано внутри уведомления, а это надо будет костылять через jQuery
06:21:26 ПП
06:21:35 ПП
06:21:53 ПП
User 40268779
Короче видео будет
06:22:17 ПП
User 60331718
о, нормас
06:22:30 ПП
User 112715267
Во, теперь годнота
06:23:18 ПП
User 112715267
что-то я в medium влюбился
06:23:31 ПП
User 112715267
надо найти хороших кодеров там и подписаться
06:23:41 ПП
User 112715267
чтобы лента годная была
06:25:01 ПП
User 60331718
@xanf_ua vee-validate все таки немного ужасен из-за промиса, который заставляем меня в .then() писать if 😐
06:25:46 ПП
User 112715267
Мне не понравился vee
06:25:55 ПП
06:27:59 ПП
User 60331718
А мне зашло, вот реально еслиб не этот факт, был бы ок
06:28:18 ПП
User 60331718
Хмм, а ведь я сам могу вызывать ошибку... Надо будет переписать это дело
06:31:08 ПП
User 40595124
https://www.surveymonkey.co.uk/r/V2CF6QD
surveymonkey.co.uk/r/V2CF6QD
Web survey powered by SurveyMonkey.com. Create your own online survey now with SurveyMonkey's expert certified FREE templates.
06:34:09 ПП
User 112715267
Как думаете, есть ли смысл делать бэкэнд фреймворк без роутера, если он будет только для rest api?
06:34:09 ПП
User 112715267
То есть все запросы на одну страницу, скажем /api , а инструкции будут передаваться в заголовках
06:34:26 ПП
User 112715267
бло, немного не так сформулировал
06:34:40 ПП
User 112715267
rest подразумевает наличие роутера :DD
06:34:44 ПП
User 112715267
просто api
06:58:59 ПП
User 85413039
А graphql?
06:59:55 ПП
User 112715267
это не совсем то имхо
07:49:24 ПП
User 136935602
User 60331718
@xanf_ua vee-validate все таки немного ужасен из-за промиса, который заставляем меня в .then() писать if 😐
Потому что провал валидации это не провал промиса
07:49:40 ПП
User 136935602
Частая ошибка. У валидации три состояния
07:50:41 ПП
User 136935602
А не два
07:50:44 ПП
User 60331718
User 136935602
Потому что провал валидации это не провал промиса
что тогда будет провалом промиса?
07:51:10 ПП
User 136935602
К примеру если произошла ошибка при вызове асинхронного валидатора
07:51:17 ПП
User 136935602
К примеру сервер не доступен
07:51:39 ПП
User 60331718
просто это же удобно пихать ошибку валидации в реджект, где-то ее перехватывать, это уменьшает ветвление кода
07:51:48 ПП
User 136935602
Normal flow, error flow, exception flow
07:52:00 ПП
User 136935602
Реджект это эксепшн
07:52:21 ПП
User 60331718
User 136935602
К примеру сервер не доступен
так это уже запрос на сервер, а не vee-validator
07:52:57 ПП
User 136935602
Правильно.  Оно умеет асинхронные валидацмм
07:53:25 ПП
User 60331718
что значит асинхронные валидации? юзкейс приведи если не сложно
07:54:33 ПП
User 136935602
Я в проекте делаю запрос на twilio чтобы проверить что введеный номер телефона принадлежит штату, зип код которого был введен
07:55:30 ПП
User 60331718
так, надо будет чекнуть доки
07:56:17 ПП
User 60331718
это через кастомную валидацию делается?
08:17:02 ПП
User 60331718
динамического добавления компонентов невозможно, как я понял, да?
08:24:32 ПП
User 60331718
User 60331718
хм, можно ведь сделаль костыльно:
сделать скрытую компоненту, где все что нужно будет рендерится, а потом просто копировать ее в уведомление
08:29:15 ПП
User 55423102
Добавить этой компоненте стилей для анимации появления и исчезнования, вместо жиквери закрытие разруливать в компоненте и выкинуть плагин 😂
08:40:50 ПП
User 60331718
User 55423102
Добавить этой компоненте стилей для анимации появления и исчезнования, вместо жиквери закрытие разруливать в компоненте и выкинуть плагин 😂
Так уведомлений может быть несколько
09:12:10 ПП
User 55423102
User 60331718
Так уведомлений может быть несколько
Ну так сделаешь чтобы твой плагин поддерживал несколько)
09:15:06 ПП
User 60331718
User 55423102
Ну так сделаешь чтобы твой плагин поддерживал несколько)
Да, думаю как раз заняться этим, как будет время, пока что это не сильно важно👍
10:28:03 ПП
User 196895
Доброй ночи, коллеги. Чат с традициями 😊
10:59:00 ПП
User 136935602
И котиками
11:02:24 ПП
User 196895
Это хорошо. Я случайно, проходя мимо, почитал документацию по недавно вышедшему Vue 2 ревизии, и задумал проверить одну гипотезу. Теперь углубляюсь в изучение api 😊
11:02:33 ПП
User 196895
Я тут немного позависаю
11:42:12 ПП
User 64800685
User 196895
Я тут немного позависаю
Давай позависай)
11:44:57 ПП
User 108562525
Надеюсь, это не Абрамов 😰
11:57:20 ПП
User 196895
Кто такой Абрамов?
11:58:03 ПП
User 196895
На Udemy хороший вводный курс по vue? Или достаточно официальной документации?