Anonymous
Anonymous
Что там не может работать? mapState(['foo']) и this.foo не работает?
Nikita
qluqua
mapGetters видится мне более оптимальным выбором. Геттеры кашируются и вооще нефиг трогать стейт напрямую)
qluqua
Даже не дышать на него)))
🐏 Alexander
🐏 Alexander
может это и перебор, но я только через mapGetter беру данные из стейта
Олег
Подскажите как протрейсить ситуацию. Есть некий фильтр, который вызывается в компоненте. В фильтре ставил вывод в консоль и заметил, что вызов идет 3 раза, хотя по идее должен быть только 1. Причемм значения на входе undefined, 0, 4. Должно быть только 4.
Stanislav
Hedint
qluqua
Разница есть, глянь доку) просто работает и то и это
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 и тд
Сергей
Ребят, а есть кто нить из РНД?)
Vadim
Сергей
Не) Ростов на Дону)
Armen
ДНР?
Республика народная, Донецкая
Vadim
Я думал ты хочешь предложить вместо яваскрипта хохлов мочить
qluqua
Armen
Не надо нас мочить
Vadim
Кстати, а в чате хоть раз возникали тёрки на этой почве?
Сергей
Подскажите чаты по фронтенду)
Stanislav
Сергей
Мне кажется тёрки только у шишек и им подавляющим)
Andrey
Armen
Такие люди, наверное, программистами не могут быть
Сергей
Прогерам не до этого) мы и так не успеваем за обновами веба следить ещё и эти тёрки)
Armen
Лучше уже спорить что лучше, вью или реакт)
Andrey
Andrey
чуваки из Российского донецка определялись как из UA
Сергей
Донецк есть и там и там)
Николаич
Олег
Николаич
Maksim
Кто-нибудь может помочь с вопросом как можно синхронизировать в компоненте реакцию на изменених 2х свойств? Есть компонент, в который проброшены свойства и в определенный момент могут измениться n из них. Можно ли отследить это и запустить код только после обновления всех?
Hedint
какой код?
Kirill
this.$watch, Vue.watch, если правильно понял. Чтобы следить за пачкой свойств сразу
Maksim
Простейший пример: на каждом свойстве висит вотчер. Функция содержит логику копирования пришедшего значения ( значениями могут быть объекты/ массивы - поэтому копирование) и запуск потом внутренней функции типа this.validate. Суть в том чтобы запускать валидацию 1 раз после всех измененных свойств
xxtux
можно следить за каждым и выставлять флаги. изменилось или нет
xxtux
и каждый раз смотреть на на флаги, набралось сколько нужно или нет
Andrey
Anton
Я бы все таки вотчер повесил на одну переменную, которая хранит в себе n флагов
Anton
Простейший пример: на каждом свойстве висит вотчер. Функция содержит логику копирования пришедшего значения ( значениями могут быть объекты/ массивы - поэтому копирование) и запуск потом внутренней функции типа this.validate. Суть в том чтобы запускать валидацию 1 раз после всех измененных свойств
Anton
Чем каждую вотчить
Anton
Типа того
xxtux
можно поставить вотчер на функцию от этих переменных
xxtux
https://ru.vuejs.org/v2/api/#vm-watch
Maksim
Попробую поэкспериментировать. Еще вопрос: как во vuex добавить объект/массив в стейт но без реактивности? Объект юзается в качестве вспомогательного в самом сторе и имеет 10к+ значений. Следовательно все геттеры/сеттеры которые добавляются и весят много и перфоманс снижают
Anton
Kirill
Добавляй не в стейт, если не нужна реактивность
Artsyom
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
объект элемент результирующего массива у тебя в не стора или в нем храниться? все равно смутно понятно как и что. напиши как есть у тебя сейчас с отрывками кода