
Evgeny
07.05.2018
06:49:06
а вот через геттер нифига не работает. Это в принципе логично, но очень не удобно в некоторых случаях. Например, в моём
но передав через props я всё равно провожу все манипулации. А это мне не нужно

Иван
07.05.2018
06:51:44
В смысле, не работает?
У тебя в сторе в модуле users там будет геттер byId

Google

Иван
07.05.2018
06:53:34
byId: state => id => state.objects[id],
Далее в компоненте юзера будет компутед user() {return this.byId(this.id)}, byId прокидываешь из стора

Evgeny
07.05.2018
06:55:11
ну работает, только пересчитывает всё заново
т.е. проблема не решилась

Иван
07.05.2018
06:55:23
Что именно пересчитывает?

Evgeny
07.05.2018
06:55:49
все computed

Иван
07.05.2018
06:55:55
Если объект, который вернулся этим компутедом user не изменился (по ссылке, скорее всего), то все производные компутеды и шаблоны не изменяются

Evgeny
07.05.2018
06:56:23
да
при условии передачи через props
если чере геттер, то я получаю объект foo, а потом достаю foo[id]
а foo при добавлении нового элемента в него меняется
вот и пересчитывается всё

Иван
07.05.2018
06:58:35
Блин, короче, достать из стора ссылку на объект - это очень быстро, это может пересчитываться хоть тысячу раз в секунду и ты не заметишь

Google

Иван
07.05.2018
06:58:45
У тебя в другом месте тормозит
Нужно посмотреть код, чтобы сказать где именно

Evgeny
07.05.2018
07:03:33
но ведь computed может не только получать объект по ссылке
там, например, может получаться что-нибудь ещё
или даже небольшие расчёты
проблема остаётся нерешенной - при добавлении в foo новой записи все computed списка полностью пересчитываются
по 1 мс на элемент при 1000 элементов уже 1 секунда
а на телефоне и того хуже

Andrey
07.05.2018
07:05:27
Мемоизация спасёт тебя.

Evgeny
07.05.2018
07:05:52
ну придётся запоминать всё и кешировать
а теперь представьте, что есть связь через 5 сущностей. Получить для 20 элементов её не проблема и быстро, а для 1000 уже медленно. Но теперь надо все требуемые поля сохранять при создании. И это у каждой из сущностей
это очень не удобно
проще отказаться от нормализации
но без нормализации сложные проекты не могут жить. Это ж сколько дублирования будет
у redux скорее всего та же проблема... Сейчас хочу попробовать прикрутить mobx к vue. Может там всё нормально будет
ну или придётся писать своё хранилище

Andrey
07.05.2018
07:11:52

Andy
07.05.2018
07:17:20

Sunlive
07.05.2018
07:33:48

Andrey
07.05.2018
07:34:48

Google

Sunlive
07.05.2018
07:35:15
ты впринципе против декораторов ? или о чем речь

Andrey
07.05.2018
07:35:33

Sunlive
07.05.2018
07:36:22
так вроде вот вот, мне всегда казалось что ниже стейж 3 уже нормально

Andrey
07.05.2018
07:36:55

Sunlive
07.05.2018
07:37:00
выше да

Evgeny
07.05.2018
07:37:10
решил проблему по другому. Пока ещё только в теории. В бесконечном скролле показывать только то, что на странице, остальное не рендерить. В итоге не будет перерендера 300 элементов, а будет рендер по debounce только того, что на странице показалось

Andrey
07.05.2018
07:37:20
Ну, они в stage-2. + бабель не умеет их транспилить.

Sunlive
07.05.2018
07:37:35
эт да
понял тебя
спасиб

Vladyslav
07.05.2018
07:51:58

Andrey
07.05.2018
07:53:33

Evgeny
07.05.2018
07:55:46
Ты изобрёл virtualized list
я не изобрёл. Естественно это уже много где обсуждалось. Просто это решение проблемы в моём случае. И не потому что список слишком длинный и тормозит (а для этого virtualized list и делают обычно), а потому что при добавлении нового элемента мы перерендерим/пересчитаем только видимую часть, а не весь список

Andrey
07.05.2018
07:56:17

Evgeny
07.05.2018
07:57:04
я естественно посмотрю готовые решения сперва. В любом случае обидно, что у vue есть проблема подобная в ядре и её не решить просто так. Всё костылями решается :(

Manuchekhr
07.05.2018
07:57:33
не получается использовать input file в Vuejs2
не сохоаняется в базе

Andrey
07.05.2018
07:58:05
А так: весь наш код - это нагромождение костылей)

Manuchekhr
07.05.2018
07:58:35

Google

Manuchekhr
07.05.2018
07:58:58
как можно будет передавать в req input file data
?

Maxim
07.05.2018
08:18:06
Народ, привет. У меня есть чайлд компонент с именованным тегом слот. Я вызываю его и в слот передаю еще один компонент, куда пробрасываю даннык из data у парента
Я так понимаю, компонент в слоте не реагирует на изменения в data
Как быть?

Michael
07.05.2018
08:20:02
Зачем там слоты? Ответишь на этот вопрос, будет изи.

Maxim
07.05.2018
08:20:43
У меня есть компонент модалки. Я контент в боди модалки через слот передаю

Michael
07.05.2018
08:23:54
а что если создать ещё один компонент, в котором будет боди модалки, и симпатично передать всё, что ты там хочешь преедатьЮ через пропсы?

Maxim
07.05.2018
08:25:27
Есть родительский компонент в котором вызыветсч переиспользуемый компонент модалки. Так же у меня есть компонент для отображения картинок. Я вызываю его в боди модалки и передаю массив с картинками в base64
Собсно массив с картинками в пропсы и идет

Michael
07.05.2018
08:29:32

Maxim
07.05.2018
08:30:05
Придется много логики переписывать, он много где используется

Michael
07.05.2018
08:30:47
нет
ещё один
именно на замену слота
т.е. компонент-обёртка для твоего много где используемого компонента, вместо слота.

Maxim
07.05.2018
08:32:09
Я сейчас тебя не очень понял, если честно
Хотя похоже понял

Evheniy
07.05.2018
08:55:31
могу ли я юзать разные валидации для одного компонента? если да то подсажите пожалуйста как?
допустим input на эмейл и имя
https://prnt.sc/jepqdu

Google

Vlad
07.05.2018
09:01:03
Инпут пусть будет просто инпутом

Evheniy
07.05.2018
09:07:11
Vlad не делать темплейт инпата, а просто написать в html?

Vlad
07.05.2018
09:08:18

Evheniy
07.05.2018
09:08:32
окей, спасибо, сейчас разберусь

Romuald
07.05.2018
09:11:43
Есть таблица. С разными показателями. Как правильнее вычислять дополнительные числа. На бэке и передавать на фронт или на фронте?

Vlad
07.05.2018
09:12:46

Michael
07.05.2018
09:23:13
Хотя похоже понял
там всё дело в том, что если ты знаешь как общаться с "компонентом", то делаешь компонент. Если не знаешь, что юзаешь слот, но слоты не имеют права общаться с родителем напрямую в силу причин выше.
То есть иначе слоты стоило бы превратить к в компоненты

Denis
07.05.2018
09:45:40
Вопрос про модалки. У меня есть приложение, где используется sweet-modal. Есть абстрактная модалка с сообщением, которую нужно открывать из любого компонента. Открывается она программно, через вызов метода show() у ref компонента модалки. Как грамотнее реализовать открытие? У меня сейчас есть общая шина, через которую приложение подписано на событие открытия. Можно ли как-то через Vuex это сделать или все таки надо использовать и шину и стор?
Знаю, что Vuex не должен иметь доступа к view-слою, поэтому никаких $refs там быть не может
Нормально ли в инстансе приложения следить через watch за каким-либо полем стора?

Рэмуальд
07.05.2018
09:48:26
сделать vuex модуль для модального окна, в котором show: true/false, message: 'msg', сделать компонент modal , который будет в корневом компоненте лежать, который из стора берет данные и показывает

Denis
07.05.2018
09:51:25
А как быть с тем, что модалка только программно умеет показываться, а не по флагу?

Рэмуальд
07.05.2018
09:52:34
не понял, есть экшн showModal({ msg }), который вызываешь когда нужно

Denis
07.05.2018
09:54:30
Этот экшн в сторе. Чтобы показать модалку например в приложении, я делаю this.$refs.modalName.open(). Из стора у меня разве есть доступ к $refs ?

Рэмуальд
07.05.2018
09:58:42
а зачем что-то через refs делать? ты в сторе просто меняешь в модуле modal show на true, а компонент modal из стора берет данные и отображает модальник

Sergey
07.05.2018
09:59:36
Разбираюсь в веб сокетами. Накопилось определенное количество разных типов запросов на сервер. И теперь обрабатывать все ответы в socket.onmessage стало трудно. Может кто подсказать как быть в таком случае? Хочется работать как с ajax например. Чтобы отправил запрос, тебе в ответ отдали промис, ты повесил на него then и обрабатываешь ответ уже там. Для веб-сокетов это конечно не совсем то, потому как ответа от сервера может и не быть, а если и будет не факт что это вообще ответ. Но у меня у всех ответов и запросов есть "action". Есть какие-то решения готовые для таких целей? Или может я вообще не в том направлении копаю?

Denis
07.05.2018
10:00:40
То есть, мне сторонний компонент sweet-modal еще в один компонент надо обернуть и следить за полем в сторе?