
Andrey
20.02.2017
09:14:36

Artem
20.02.2017
09:15:04

Andrey
20.02.2017
09:15:36
https://vuejs.org/v2/api/#Vue-set

Artem
20.02.2017
09:16:08
но это же наоборот

Google

Artem
20.02.2017
09:16:29
у меня проблема что vue слишком много изменений пытается детектить, а не слишком мало

Alex
20.02.2017
09:16:42
get|set везде будет, а computed сами кешируют себя и зависимости определяют от которых зависит

Artem
20.02.2017
09:17:12
вот эти set и get сильно влияют на оптимизации кода, особенно в ФФ

Stanislav
20.02.2017
09:17:13
или передавать в vue не весь объект, а только нужные данные...

Alex
20.02.2017
09:17:21
https://ru.vuejs.org/v2/api/#computed

Artem
20.02.2017
09:17:53
само наличие set и get пугает оптимизатор движка

Andrey
20.02.2017
09:18:37

Alex
20.02.2017
09:18:38
что же такое там оптимизировать пробуете) никому не мешало, а тут вот опять)))

Alexander
20.02.2017
09:19:10
Кароче, ему хочется ещё быстрее, чтобы сеттеры и геттеры автоматически не создавались.

Andrey
20.02.2017
09:19:10
Либо храни некоторые данные не в компонентах

Alex
20.02.2017
09:19:32
Vue вроде и так местами быстрее ангуляр и реакта получается) куда еще быстрее
до vanillajs не допрыгнуть)

Alexander
20.02.2017
09:19:48

Google

Alexander
20.02.2017
09:20:10
А вообще всегда можно форкануть и сделать так, как хочется. ^___^

Andrey
20.02.2017
09:21:30
и огрести проблем с обновлениями, ага =)

Artem
20.02.2017
09:21:54
задача полностью: пробую на vue написать простенькую игру (да, я знаю, что есть специализированные игровые движки) для эксперимента. Игра - это платформер, где бегает кучка юнитов и гасит друг друга. На визуальную часть влияют только координаты юнитов, но в самой модели есть ещё куча разных приватных свойств, касающихся внутренних состояний, ИИ, разных кешей и прочего. И после навешивания vue-шных хендлеров логика начинает работать примерно в 10 - 20 раз медленнее

Andrey
20.02.2017
09:22:39

Artem
20.02.2017
09:23:08
есть, все методы логики начинают просто больше жрать времени
т.е. я просто инициализируе vue для модели, даже ничего не отрисовываю и уже всё начинает тормозит

Rafael
20.02.2017
09:23:54
store.watch()

Andrey
20.02.2017
09:24:09
вынеси из vue то что не нужно для vue

Artem
20.02.2017
09:24:26
но как я это сделаю, он же ходит по всему дереву
вся реактивность пойдёт лесом

Andrey
20.02.2017
09:24:43

Artem
20.02.2017
09:25:33
мне нужна реактивность только для некоторых полей модели, например, для координат юнитов. Для всего остального мне вообще не нужно трекать изменения

Alexander
20.02.2017
09:25:56
Вынеси поля, на которые реактивность не нужна.

Artem
20.02.2017
09:25:57
чтобы на других пропертях не было vueшных set и get вообще

Alexander
20.02.2017
09:25:58
:D

Rafael
20.02.2017
09:26:05

Artem
20.02.2017
09:26:19

Rafael
20.02.2017
09:27:00

Google

Rafael
20.02.2017
09:27:25
Я поэтому вместе с Array всегда ставлю ещё updatedId и его вотчу

Andrey
20.02.2017
09:28:36

Rafael
20.02.2017
09:29:12

Andrey
20.02.2017
09:29:35
потому что у тебя по дефолту все реактивное

Alexander
20.02.2017
09:29:54
Да это фреймворк такой. От сеттеров и геттеров не избавиться без форка. А там создать какой-нибудь private в дополнение к data, props и computed, чтобы для этого private не было сеттеров и геттеров.

Andrey
20.02.2017
09:30:40
вроде бы после создания компонента можно писать в data
и тогда эти свойста не будут реактивными
но проверить сейчас не могу
может тебе просто отслеживать изменения через кастомные функции?
но тогда тут и vue не нужен =)

Artem
20.02.2017
09:32:00
тогда мне и vue не нужен

Artem
20.02.2017
09:32:01
ага

Alexander
20.02.2017
09:32:20
Ура! Мы научились выбирать инструмент под потребности!

Alex
20.02.2017
09:32:44
?

Artem
20.02.2017
09:33:05

Alexander
20.02.2017
09:33:26
@nologin Попробуй обратить внимание на Google Closure Library. Низкоуровневый фреймворк, на котором можно сделать всё, что нужно, но кода получится много.
Там и компилятор в комплекте.

Rafael
20.02.2017
09:33:49
Непроще ли webassembly юзать тогда?

Artem
20.02.2017
09:34:53
в приницпе возможно конкретно для меня нормальный вариант - это сделать конкретно юнитов отдельно от vue или сделать параллельно некую shadow-модель, а всё остальное (интерфейс, включая вывод очков и прочего) сделать уже напрямую через vue

Google

Alex
20.02.2017
09:35:16
Кстати для webassembly логотип выбирают)
https://github.com/WebAssembly/design/issues/980
один вариант прям хорош) с короной

Alexander
20.02.2017
09:35:42
@nologin Vue -- это и есть вьюха. Возможно, действительно, тебе нужно написать какую-то свою модель.

Andrey
20.02.2017
09:36:04
стор какой-то нужен, в любом случае

Artem
20.02.2017
09:37:14
одна модель полноценная, со всей логикой. Вторая только для юнитов, т.е. минимум полей, например, только координаты и тип. А вот эту вторую модель обновлять уже из первой модели без реактивности, тупо руками хендлить изменения

Admin
ERROR: S client not available

Rafael
20.02.2017
09:37:47

Andrey
20.02.2017
09:38:01

Artem
20.02.2017
09:38:07
а зачем обходить, основная модель сама может эмитить события изменения координат

Rafael
20.02.2017
09:38:42
Хм, если тебе webworkers заюзать?
Сложную логику уже там обрабатыать

Andrey
20.02.2017
09:39:11
лучше на бэкенде =)

Rafael
20.02.2017
09:39:35

Artem
20.02.2017
09:39:41
ну тогда мне нужно будет вообще полноценную урезанную модель иметь, которая только для vue. А связь между основной моделью и вот этой калечной руками - тогда реактивность ноль и двойная работа. Зачем это надо

Andrey
20.02.2017
09:40:02

Alexander
20.02.2017
09:40:07
Одна модель для UI, другая модель для механики игры. Вторую модель можно на бэкенде, либо на фронтенде воркерами в параллельном потоке.

Artem
20.02.2017
09:40:32
так в том и дело, что я не хочу две модели делать, мартышкин труд же

Alexander
20.02.2017
09:40:34
И будет у тебя многопоточность!

Google

Alexander
20.02.2017
09:40:51
Многопоточность на клиенте!

Rafael
20.02.2017
09:40:56

Alexander
20.02.2017
09:40:57
Все девочки твои.

Artem
20.02.2017
09:41:00
многопоточность мне не нужна, там логика простая

Andrey
20.02.2017
09:41:49
и коммуникация между ними

Artem
20.02.2017
09:42:33
ну vue как бы для того и делался вроде, чтобы не нужно было лишнего писать, а можно было втупую следить за всеми изменениями основной модели

Rafael
20.02.2017
09:42:36
А кстати из воркера можно делать подписку на хранилище?

Andrey
20.02.2017
09:43:10

Rafael
20.02.2017
09:43:23

Andrey
20.02.2017
09:43:39
ну каждой задаче свои инструменты

Artem
20.02.2017
09:44:15
ну я тут на самом деле палки не вижу, просто не хватает одной небольшой ручки в vue, через которую можно было бы управлять развешиванием хендлеров. Технически-то тут проблем нет

Ivan
20.02.2017
09:44:30
но то есть если задача сделать игру на vue
то человек будет пилить на ней

Rafael
20.02.2017
09:45:04

Andrey
20.02.2017
09:45:12

Ivan
20.02.2017
09:45:29
ну он же написал, что есть и другие инструменты и он о них знает

Artem
20.02.2017
09:45:34
у меня нет задачи именно на vue сделать, просто пробую как оно будет и какие грабли