
MVP
21.02.2017
09:44:58

Stanislav
21.02.2017
09:46:12
не, кастомная директива, v-my-event="doStuff", которая внутри на элемент повесит все нужные слушатели…
… но это крайний случай. если получится - лучше компонентом - как <transition> делает, чтобы Vue мог продолжать контролировать все

MVP
21.02.2017
10:05:00
кстати вот кто там переводами занимается - вот это бы перевести неплохо - https://github.com/pablohpsilva/vuejs-component-style-guide

Google

Victor
21.02.2017
10:37:49
type: Number,
default() { return 0; },а зачем тут у них функция? Вроде ж только для объектов надо, для примитивов просто можно писать значение

Rafael
21.02.2017
10:38:10
Чтобы каждая компонента свою область видимости данных имела

Victor
21.02.2017
10:40:17
https://vuejs.org/v2/guide/components.html#Prop-Validation не вижу тут, в каком месте не помнишь?

Rafael
21.02.2017
10:42:04

Victor
21.02.2017
10:43:44
хз, не вижу связь тут с валидацией пропсов

Rafael
21.02.2017
10:44:08
А, тьфу, сорян, я ступил
Не понял твоего вопроса

Victor
21.02.2017
10:44:47
просто непонятно зачем они в стайл гайде так делают, просто для единобразия, или есть еще причины

Rafael
21.02.2017
10:45:09
Я думаю, что там внутри независимо от типа вызывается функция

Victor
21.02.2017
10:46:18
ну просто default: 100 для меня красивей выглядит чем default () { return 100} :)

Stanislav
21.02.2017
10:47:14
но не безопасно
можешь написать свою функцию
rtrn(<value>)
:D

Google

Stanislav
21.02.2017
10:47:55
или так
() => (100)

Victor
21.02.2017
10:48:17
так а в чем небезопасность?

Rafael
21.02.2017
10:48:20

Stanislav
21.02.2017
10:49:09
так а в чем небезопасность?
в том что компонент ты объявляешь один раз, а использовать его можно много раз, и если вместо 100 ты передашь какой-то объект, то он будет одинаковый для всех инстансов компонента
и если кто-то его поменяет - он изменится везде

Victor
21.02.2017
10:49:45
будет ошибка ж если передать объект туда где валидация на примитив
для того она и нужна вроде)

Stanislav
21.02.2017
10:50:29
new Number - выдаст объект, а не примитив
к тому же data, как функция, это универсальное решение
для случаев когда нет валидации
и чтобы не проверять все кейсы…
и дело ведь не в том, что валидироваться будет
а в том что ты в default задашь

Victor
21.02.2017
10:51:37
а ну про new Number не подумал, точно

Stanislav
21.02.2017
10:51:47
та это не имеет значение
ну смотри
default : new Book()
ты нажимаешь кнопку Создать Книгу и открывается страница, изменяешь навзвание книги, уходишь со страницы, снова нажимаешь Создать Книгу и видишь старое название

Victor
21.02.2017
10:54:28
так это ж объект вернет?

Google

Victor
21.02.2017
10:54:42
тогда надо конечно функцию, так и написано в доках

Stanislav
21.02.2017
10:55:27
ну так кейсов для data миллион, Vue не хочет проверять что ты туда ложишь, но он хочет чтобы данные были уникальными
и заставляя тебя писать функцию - напоминает, что нужно новые объекты каждый раз создавать

Victor
21.02.2017
10:57:04
так а при чем тут data вообще, я не сильно понимаю

Stanislav
21.02.2017
10:57:18
сори, props
default
оно все по одному принципу сделано

Victor
21.02.2017
10:57:40
да и не заставляет она
и даже в оф доках пример где просто примитивы в дефолте
я такое только в этом стайлгайде увидел

Stanislav
21.02.2017
10:58:46
да, сори
я немного недочитал твой вопрос

Victor
21.02.2017
11:00:03
ну пофиг, на всякий случай теперь буду писать как в стайл гайде )

Rafael
21.02.2017
11:47:48
почему родитель не может поймать $emit дочки?

Stanislav
21.02.2017
11:49:51
а ты уверен что он должен?

Rafael
21.02.2017
11:49:59
а почему не должен?

Stanislav
21.02.2017
11:49:59
https://vuejs.org/v2/api/#vm-on

Alexandr
21.02.2017
11:50:04
https://risingstars2016.js.org/

Google

Stanislav
21.02.2017
11:50:20
» Listen for a custom event on the current vm.

Rafael
21.02.2017
11:50:43
ну да, а что не так то?
у меня компоненты находятся в рамках одного инстанса вью

Andrey
21.02.2017
11:54:20
сделай в родительском шаблоне на компоненте v-on
<child v-on:pick="_mark_point"></child>

Rafael
21.02.2017
11:56:23
м, точняк

Stanislav
21.02.2017
11:57:01
vm - это не один глобавльный инстанс, а инстанс каждого Vue и Vue.component

Rafael
21.02.2017
12:00:19
тогда какой смысл их использовать не через шину?

Admin
ERROR: S client not available

Stanislav
21.02.2017
12:03:11
может я не прав, но я вроде так понял из док по Vue, к тому же только что попробовал маленький пример https://codepen.io/termosa/pen/GrxZNj

Andrey
21.02.2017
12:05:55
>Listen for a custom event on the current vm.
https://vuejs.org/v2/api/#vm-on

Stanislav
21.02.2017
12:07:22
это и обсуждаем

Andrey
21.02.2017
12:08:15
ну я про то что да, vm это не глобальный инстанс
не $root, в общем

Stanislav
21.02.2017
12:08:52

Andrey
21.02.2017
12:09:26
ну и вообще зачем тебе делать шину когда у тебя будут только связи родитель - ребенок

Google

Stanislav
21.02.2017
12:09:57
может он усложнить хочет и добавить промежуточные элементы
Пример использования:
Плагин, который определяет, что компонент попал в область видимости. Он мог бы общаться с компонентами через методы $emit $on

Rafael
21.02.2017
12:18:30
а оказываетс можно и без этого обойтись
просто удивился, что шина не сработала

Andrey
21.02.2017
12:20:14
ну я бы в коде посмотрел как он обрабатывает директиву v-on:
мне кажется что в ребенке регистрируется $on у которого колбэк это родительский метод
но я в js не силен

Rafael
21.02.2017
12:21:31

Andrey
21.02.2017
12:21:49
я не искал
где-то в гите vuejs

Rafael
21.02.2017
12:22:26
А, все, понял, как ты нашел

Andrey
21.02.2017
12:28:06
что нашел?

Stanislav
21.02.2017
12:29:51
просто удивился, что шина не сработала
так у тебя в коде выше и нету шины :)
Ты имитишь событие с ребенка, но слушаешь на родителе. А надо слушать на ребенке в родительском компоненте.
this родителя и this ребенка - это разные объекты

Rafael
21.02.2017
12:30:22

Andrey
21.02.2017
12:30:43
Шина работает потому что ты $on и $emit на одном инстансе делаешь

Rafael
21.02.2017
12:30:58
все, я понял, что вы хотите сказать

Stanislav
21.02.2017
12:31:08
Да, один "глобальный" объект
з.ы. кто-нить nginx конфигурирвал? есть вопросик по прокси

Illya
21.02.2017
12:33:09
Валяй

Antony
21.02.2017
12:34:11
Возможно ответ найдется сразу тут - http://nginx.org/ru/docs/http/ngx_http_proxy_module.html

Stanislav
21.02.2017
12:37:56
В общем, мне надо возвращать ответ от проксируемого сервиса не только отправителю, но и на локальный сервер.
Не могу придумать, как это загуглить :)

Andrey
21.02.2017
12:43:05
у тебя запрос инициирует удаленный клиент, а не локальный сервер же

Stanislav
21.02.2017
12:43:39
ну да