@vuejs_ru

Страница 184 из 3900
Artem
20.02.2017
09:15:04
через set можешь это сделать
а можно поподробнее?

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
у меня проблема что vue слишком много изменений пытается детектить, а не слишком мало
добавляй через сет то что тебе нужно отслеживать, но по факту это значит что руками разбирать данные

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 раз медленнее

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

Artem
20.02.2017
09:26:19
Rafael
20.02.2017
09:27:00
читаю, спасибо
Только она для Array вроде не оч работает

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 -- это и есть вьюха. Возможно, действительно, тебе нужно написать какую-то свою модель.

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

Admin
ERROR: S client not available

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
лучше на бэкенде =)
Такими темпани у него останется тонкий клиент :D

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

Andrey
20.02.2017
09:40:02
Такими темпани у него останется тонкий клиент :D
что всегда и было лучшим вариантом для онлайн игрулек =)

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
Многопоточность на клиенте!

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

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

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

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

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

то человек будет пилить на ней

Andrey
20.02.2017
09:45:12
то человек будет пилить на ней
конечно, ведь больше нет либ которые сделаны для этого

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

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

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