Anonymous
Что там не может работать? mapState(['foo']) и this.foo не работает?
Anonymous
Массив же надо передавать
Ну да, пропустил скобки.
qluqua
mapGetters видится мне более оптимальным выбором. Геттеры кашируются и вооще нефиг трогать стейт напрямую)
qluqua
Даже не дышать на него)))
🐏 Alexander
может это и перебор, но я только через mapGetter беру данные из стейта
Олег
Подскажите как протрейсить ситуацию. Есть некий фильтр, который вызывается в компоненте. В фильтре ставил вывод в консоль и заметил, что вызов идет 3 раза, хотя по идее должен быть только 1. Причемм значения на входе undefined, 0, 4. Должно быть только 4.
qluqua
Разница есть, глянь доку) просто работает и то и это
Олег
данные с сервера запрашиваются?
есть запрос в родительском компоненте, но конкретно это значение уже приходит в props
Hedint
ну так изначально в props приходит другое значение?
qluqua
Запрос на фетче/промисах?
qluqua
Похоже как будто пропс меняется вместе со статусом xmlhttprequest
Олег
Запрос на фетче/промисах?
передача в дочерний компонент <panel class='mt-2' :itemcount="count"> вычисление count в computed: { filteredItems:function(){ if (this.search.title.length >=3) { return this.items.filter((item)=>{ return item.title.toLowerCase().match(this.search.title.toLowerCase()) })} else { return this.items }; }, count:function(){ return this.filteredItems.length } }
Олег
собственно вызов {{itemcount | my_pluralize(['курица','курицы','куриц'])}}
Олег
я думаю дело в запросе на получение списка items ----> watch: { '$route.query': { immediate:true, async handler(query) { this.items = (await ItemsService.getItems(query.category,query.subcategory)).data } } }
Hedint
твое состояние отрисовывается до того, как пришли данные от сервера, а потом перерисовывается
Hedint
все вроде логично
qluqua
я хз поможет нет, но я обычно делаю что-то типа const data = await ItemsService.getItems(query.category,query.subcategory) а потом this.items = data
qluqua
можно ещё проверок напихать что бы не равно нулю, indefined и тд
Сергей
Ребят, а есть кто нить из РНД?)
Сергей
Не) Ростов на Дону)
Armen
ДНР?
Республика народная, Донецкая
Vadim
Я думал ты хочешь предложить вместо яваскрипта хохлов мочить
Armen
Не надо нас мочить
Vadim
Не надо нас мочить
Все вопросы к Сергею
Сергей
Я думал ты хочешь предложить вместо яваскрипта хохлов мочить
Да ладно вам) они норм) только правительство у нас всех не может подружиться) Народы то не ругались по собственной воли)
Vadim
Кстати, а в чате хоть раз возникали тёрки на этой почве?
Сергей
Подскажите чаты по фронтенду)
Сергей
Мне кажется тёрки только у шишек и им подавляющим)
Andrey
Подскажите чаты по фронтенду)
в описание этого посмотри
Vadim
Мне кажется тёрки только у шишек и им подавляющим)
В чатах разработчиков ни разу не видел, а вот в каких-то общетематических бывают.
Armen
Такие люди, наверное, программистами не могут быть
Сергей
Прогерам не до этого) мы и так не успеваем за обновами веба следить ещё и эти тёрки)
Николаич
Кстати, а в чате хоть раз возникали тёрки на этой почве?
Конечно. Я написал, что из Российского Донецка и даже бан получил на пару минут, за разжигание. Потом убедились, что в РФ свой Донецк и разбанили.
Armen
Лучше уже спорить что лучше, вью или реакт)
Vadim
Прогерам не до этого) мы и так не успеваем за обновами веба следить ещё и эти тёрки)
Угу. Не использовать библиотеку, если в зависимостях есть что-то от разработчика из России / Украины :)
Andrey
чуваки из Российского донецка определялись как из UA
Vadim
у нас из за этого донецка с геотаргетингом были проблемы =))
Да-да, приходится в скобках указывать Донецк( Ростовская область)
Сергей
Донецк есть и там и там)
Олег
я хз поможет нет, но я обычно делаю что-то типа const data = await ItemsService.getItems(query.category,query.subcategory) а потом this.items = data
да я собственно сейчас и проверяю в фильтре на if (num>0 & num !=undefined) , но как то это костыльно )
Vadim
Жестокий вы. Вот это я понимаю - санкции.
На выходе кристально-патриотичный код :)
Николаич
На выходе кристально-патриотичный код :)
На отечественных велосипедах
Maksim
Кто-нибудь может помочь с вопросом как можно синхронизировать в компоненте реакцию на изменених 2х свойств? Есть компонент, в который проброшены свойства и в определенный момент могут измениться n из них. Можно ли отследить это и запустить код только после обновления всех?
Hedint
какой код?
Kirill
this.$watch, Vue.watch, если правильно понял. Чтобы следить за пачкой свойств сразу
Maksim
Простейший пример: на каждом свойстве висит вотчер. Функция содержит логику копирования пришедшего значения ( значениями могут быть объекты/ массивы - поэтому копирование) и запуск потом внутренней функции типа this.validate. Суть в том чтобы запускать валидацию 1 раз после всех измененных свойств
xxtux
можно следить за каждым и выставлять флаги. изменилось или нет
xxtux
и каждый раз смотреть на на флаги, набралось сколько нужно или нет
Anton
Я бы все таки вотчер повесил на одну переменную, которая хранит в себе n флагов
Anton
Простейший пример: на каждом свойстве висит вотчер. Функция содержит логику копирования пришедшего значения ( значениями могут быть объекты/ массивы - поэтому копирование) и запуск потом внутренней функции типа this.validate. Суть в том чтобы запускать валидацию 1 раз после всех измененных свойств
Anton
Чем каждую вотчить
Maksim
Я бы все таки вотчер повесил на одну переменную, которая хранит в себе n флагов
Это как? Завести флаги в дата для каждого свойства и повесить вотчер на OR от всех этих переменных?
Anton
Типа того
xxtux
можно поставить вотчер на функцию от этих переменных
xxtux
https://ru.vuejs.org/v2/api/#vm-watch
Maksim
Попробую поэкспериментировать. Еще вопрос: как во vuex добавить объект/массив в стейт но без реактивности? Объект юзается в качестве вспомогательного в самом сторе и имеет 10к+ значений. Следовательно все геттеры/сеттеры которые добавляются и весят много и перфоманс снижают
Kirill
Добавляй не в стейт, если не нужна реактивность
Maksim
Добавляй не в стейт, если не нужна реактивность
А куда? Это же в сторе используется и в любой момент из мутации должен быть доступен этот объект
Kirill
А куда? Это же в сторе используется и в любой момент из мутации должен быть доступен этот объект
тогда опиши, пожалуйста, поподробней, желательно с небольшим примером) я не совсем понял для чего тебе это
Maksim
Ну он используется только в сторе для внутренних трансформаций данных. Это объект с timestamp-датами в виде ключей для быстрой проверки есть ли такая дата в сторе
Maksim
суть задачи в следующем: есть n наборов данных. Каждый набор характеризуется 2я массивами: один с датами в строковом виде (с сервера ответ в json), второй - со значением в эту дату. Надо смерджить наборы данных в вид массива объектов, где объект содержит дату в виде js-даты(парсим) и значений из всех наборов. Например [{date: date-object, a: 1, b: 2, c: 1}]
Maksim
Алгоритм я взял такой. Беру первый набор и парсю даты, даты складываю во вспомогательный объект где ключ - это timestamp, а значение - ссылка на обьект элемент результирующего массива. Это сделано для быстрого перекрестного доступа - проверяем дату, если есть - то сразу по ссылке вставляем данные набора и идем дальше
qluqua
qluqua
А ты неплох)
Maksim
Вообще-то задача не совсе про vue)) но я уже всю голову сломпл об эфективном js и перфомансе. На 30к данных (4 набора по 8-10к) 200мс мердж и 200мс стор ест. На 80к данных (8 наборов по 10к) почти 1секунда на мердж и стор опять есть 500мс где-то
qluqua
Для таких вещей и придумывали бекенд и кеширование) но интересная задача, да
Kirill
объект элемент результирующего массива у тебя в не стора или в нем храниться? все равно смутно понятно как и что. напиши как есть у тебя сейчас с отрывками кода
Maksim
объект элемент результирующего массива у тебя в не стора или в нем храниться? все равно смутно понятно как и что. напиши как есть у тебя сейчас с отрывками кода
Результирующий большой массив с обьектами - это как раз результат, который уходит в стор и дальше в несколько компонентов. Если задачка интересна, то завтра могу код в личку скинуть. Сейчас доступа к нему нет