@vuejs_ru

Страница 83 из 3900
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
import React, { PropTypes } from 'react';
мм, клевое пояснение кстати ??

похоже у разноса фунции есть положиетльные плюшки: например не нужно обращаться к методу как 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
store.getters.a.getSomething
store.getters['a/getSomething']

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 надо импортировать и регистрировать?

tufedtm
19.01.2017
15:50:13
покажи логику из dashboard.vue
в Dashboard.vue только template

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
где name у компоненты?
name становится равен компоненту ведь?

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
хм, пойду читать доки
это в es6 такое добавили в объекты нет?

Illya
19.01.2017
16:01:47
это в es6 такое добавили в объекты нет?
Вы обо разных вещах говорите

Один о name в определении компонентов, второй о имени при подключении

Illya
19.01.2017
16:04:55
Да

ES2015 Object Shorthand syntax

tufedtm
19.01.2017
16:05:21
<router-view name="dashboard-header">
сделал так все 3 компонента удалил содержимое тега script из Dashboard.vue ошибок нет, но и не рендерится ничего

Illya
19.01.2017
16:05:46
В роутинге поправь components

'dashboard-header': DashboardHeader

я не уверен что имена из camelcase в черточки перегоняются

А ещё component выкинуть из роута

И в components сунуть

default: Dashboard

Rafael
19.01.2017
16:07:40
А ещё component выкинуть из роута
воот, я тоже удивился от этого

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 } } ] },т.е. так?

Страница 83 из 3900