
Kelin
19.01.2017
15:08:56
как-то бредовенько

Illya
19.01.2017
15:09:04
нет, очень удобно
import React from 'react';

Kelin
19.01.2017
15:09:10
все равно можно написать
export default {a:1,b:2}

Google

Illya
19.01.2017
15:09:13
вытащить реакт из реакта

Kelin
19.01.2017
15:09:17
а потом import {a,b} from 'aaaa.js'

Illya
19.01.2017
15:09:22
import React, { PropTypes } from 'react';

Kelin
19.01.2017
15:09:32
разве?

Illya
19.01.2017
15:09:39
срабатывало во времена babel5 потому что у них была неправильная реализация модулей

Kelin
19.01.2017
15:09:46
понял
пардоньте
вопрос отпал

Illya
19.01.2017
15:10:06
в этом и суть - в import { ... } - это не деструктуризация

Rafael
19.01.2017
15:10:59
похоже у разноса фунции есть положиетльные плюшки:
например не нужно обращаться к методу как this.myMethod(), а можно непосредственно как myMethod() (но это не точно :В )

Illya
19.01.2017
15:15:23
если ты не используешь this - то да можно

Google

Illya
19.01.2017
15:15:36
если же у тебя используется this внутри функции - то только this.myMethod

Rafael
19.01.2017
15:15:44
???? клаасс

Kelin
19.01.2017
15:16:08
Это вы о чем

Illya
19.01.2017
15:16:09
Более того, если у тебя эти функции не дергаются из шаблона (А у тебя и шаблона то нет), то их и не надо добавлять в methods компонента (зачем?)

Rafael
19.01.2017
15:18:53
логичный вопрос, однако
да, пожалуй надо будет переделать
как будет выглядет ьобращение к геттеру namespased модуля у хранилища?
store.getters.a.getSomethig?

Illya
19.01.2017
15:23:31
store.getters.a.getSomething

Rafael
19.01.2017
15:24:15
пасиба

Illya
19.01.2017
15:25:09
а вообще с этим неймспейсингом грязь
С одной стороны - просто сливать все в store.getters плохо - конфликты имен разных модулей разработанных разными людьми и т.д.
С другой стороны - если все неймспейсить теряется очень важная фишка хранилища о которой мало кто задумывается - возможность реагировать на одну мутацию в разных модулях хранилища
А это важно. Простейший пример - на мутацию LOGOUT реагирует хреналлиард модулей хранилища, настраивая себя
Но если делать часть модулей namespaced, часть нет - получается еще хуже. Оккам негодует

Rafael
19.01.2017
15:27:24
но да я согласен, поэтому только независмые модули в namespased заношу

Illya
19.01.2017
15:27:55
А тут тоже неприятный нюанс

Rafael
19.01.2017
15:28:12

Illya
19.01.2017
15:28:30
Представь себе, что я хочу каждый раз когда отправляю нотификацию делать запись в лог куда-нибудь на сервере (простейший пример - гуглоаналитика)

Google

Illya
19.01.2017
15:28:52
так бы я мог это сделать отдельным модулем Vuex который реагирует на теже события
Хотя с гуглоаналитикой отдельная история - с одной стороны оно может быть привязано к Vuex, с другой стороны не очень
вобщем тема side-effects во Vuex пока не раскрыта чуть-более чем полностью

Rafael
19.01.2017
15:31:12
ну, так как пока что я не особо знакомился с межмодульным взаимодействием в vuex, то парить пока не буду, хотя за идею спасибо, надо будет обмозговать пару дней

Illya
19.01.2017
15:33:03
это скорее вопрос в пустоту, может кто мыслями поделится

tufedtm
19.01.2017
15:47:53
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 надо импортировать и регистрировать?

Rafael
19.01.2017
15:49:05
покажи логику из dashboard.vue

Illya
19.01.2017
15:49:40
И это хорошо

tufedtm
19.01.2017
15:50:13

Rafael
19.01.2017
15:50:38
вот для него покажи dashboard-header

tufedtm
19.01.2017
15:51:22

Illya
19.01.2017
15:51:38
Какой?

Rafael
19.01.2017
15:51:50
почему ты используешь и то и то?
component: DashboardContent,
components: {
DashboardHeader,
DashboardSidebar
}

tufedtm
19.01.2017
15:52:37
в vue нельзя расширять родительский шаблон и его рендерить?

Illya
19.01.2017
15:52:56
Можно
Но писать правильно надо

Rafael
19.01.2017
15:53:37
Можно
если есть пример, то можешь кинуть?

tufedtm
19.01.2017
15:53:38
Какой?
<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

Google

Illya
19.01.2017
15:54:00
И помогло? :)

tufedtm
19.01.2017
15:54:05

Rafael
19.01.2017
15:54:23

tufedtm
19.01.2017
15:55:27

Illya
19.01.2017
15:55:31
Мне кажется ошибка должна была остаться даже после дублирования, или я не прав?
Ты напутал компоненты вью и именованный роутинг

Admin
ERROR: S client not available

tufedtm
19.01.2017
15:57:58
сейчас так и работает

Illya
19.01.2017
15:58:22
Выкинуть из dashboard.vue

Rafael
19.01.2017
15:58:28
где name у компоненты?

Illya
19.01.2017
15:58:41
И вместо <dashboard-header
<router-view name="dashboard-header">
Это если ты хочешь компоненты в роутах перечислять

tufedtm
19.01.2017
15:59:57

Rafael
19.01.2017
16:00:19

Illya
19.01.2017
16:00:20
Забейте на name, он глубоко опционален

Alex
19.01.2017
16:01:00
Name необходим только если рекурсивно тот же компонент нужно будет вызывать

Illya
19.01.2017
16:01:08
Но вообще для сценариев дашбоард-футер-контент лучше вложенные роуты использовать
А не именованные

Rafael
19.01.2017
16:01:31
еще и помощь в отладке

Google

tufedtm
19.01.2017
16:01:31

Illya
19.01.2017
16:01:47
Один о name в определении компонентов, второй о имени при подключении

Rafael
19.01.2017
16:04:50

Illya
19.01.2017
16:04:55
Да
ES2015 Object Shorthand syntax

tufedtm
19.01.2017
16:05:21

Illya
19.01.2017
16:05:46
В роутинге поправь components
'dashboard-header': DashboardHeader
я не уверен что имена из camelcase в черточки перегоняются
А ещё component выкинуть из роута
И в components сунуть
default: Dashboard

Rafael
19.01.2017
16:07:40

Illya
19.01.2017
16:07:59
Может оно и работает
Но неочевидные штуки не для меня

tufedtm
19.01.2017
16:09:47
default: Dashboard
{
path: '/dashboard',
children: [
{
path: '',
name: 'dashboard',
components: {
default: Dashboard,
'dashboard-header': DashboardHeader,
'dashboard-sidebar': DashboardSidebar,
'dashboard-content': DashboardContent
}
}
]
},т.е. так?