@vuejs_ru

Страница 3720 из 3900
DimenSi
27.09.2018
18:52:11
У меня до сих все грузится.

Vlad
27.09.2018
18:52:45
роскомназдор)

isProd ? '[hash:base64]' : '[local]_[hash:base64:5]' во, нашел конфиги. про [local] в доках не нашел щас, но это оно)

Google
Vlad
27.09.2018
18:53:39
имя класса будет

DimenSi
27.09.2018
18:55:38
Бля, почему у меня не работает, что за призрачные баги.

Dima
27.09.2018
18:55:54
Всем привет!

DimenSi
27.09.2018
18:56:06
Не могу же я с конфигом тупануть, я же тупо из доки скопировал

Сергей
27.09.2018
19:05:11
Парни, нужен ещё толковый совет) http://joxi.ru/VrweJPVfOlVPe2 в Vuex есть 3 action, которые получают дату, посты, пользователи, коменты, если допустим пользователи и коменты прийдут с задержкой (setTimeout для примера), то на момент рендера постов геттер, который ищет пользователя по id для каждого поста естественно не найдет пользователя Как сделать так, что бы после получения кользователей с задержкой вот например такой компонет заново выполнял getter http://joxi.ru/L21JO19F87GlaA и выводил пользователя?

надеюсь нормально сформулировал вопрос)

Алексей
27.09.2018
19:06:23
скорее всего ты в коммите делаешь просто posts = responce.data.posts

а это массив наверняка, а массивы при присвоении обычном не отслеживаются на изменения. В итоге ты выводишь "предыдущий" запрос

смотри как заполнять массив в vue чтобы он был реаткиным: push или reduce (для замены), тогда твой computed getter будет в рилтайме возвращать нужные данные

Vlad
27.09.2018
19:11:08
Не могу же я с конфигом тупануть, я же тупо из доки скопировал
разверни новый cli да перенеси проект, не ?

Сергей
27.09.2018
19:11:38
а это массив наверняка, а массивы при присвоении обычном не отслеживаются на изменения. В итоге ты выводишь "предыдущий" запрос
Эти массивы присваиваются в свойства state в мутаторах, как ты написал про реактивность, вспомнил про Vue.set http://joxi.ru/RmzQMP9h09XEzr Попробовал, неа, или я не правильно понял?

DimenSi
27.09.2018
19:11:43
разверни новый cli да перенеси проект, не ?
То есть предлагаешь взять воду из одного ведра и перелить в другое?

Google
Алексей
27.09.2018
19:13:17
Эти массивы присваиваются в свойства state в мутаторах, как ты написал про реактивность, вспомнил про Vue.set http://joxi.ru/RmzQMP9h09XEzr Попробовал, неа, или я не правильно понял?
через сет не пробовал, я у себя так делаю: js setAgreements (state, data = []) { let agreements = state.agreements for (let i = 0; i < data.length; i++) { let itemIdx = -1 if (agreements.length > 0) { itemIdx = agreements.findIndex(item => parseInt(item.id) === parseInt(data[i].id)) } if (itemIdx < 0) { state.agreements.push(data[i]) } else { state.agreements.splice(itemIdx, 1, data[i]) } } localStorage.setItem('agreement', JSON.stringify(state.agreements)) }, реактивность есть

Valeriy
27.09.2018
19:18:54
зачем ты перед сравнением двух переменных делаешь parseInt? :)))

тем более что этой функции надо указывать радикс

parseInt(num, 10)

а то можешь не заметить как оно воспримет строку как восьмеричное число :))

DimenSi
27.09.2018
19:21:27
Как много смайлов

Алексей
27.09.2018
19:22:08
неа, что-то не то, у меня от axios приходит уже массив, я его просто присваиваю в свойство из state,
в это и проблема, я ж тебе как раз присваивание показал, как у меня сделано. Я тоже массив получаю из АПИ

попробуй сделать push - увидишь как обновится вьюха и задублируются твои сообщения

это ты просто можешь быстро проверить

Сергей
27.09.2018
19:22:57
ок) сейчас проверю

Алексей
27.09.2018
19:23:14
this.comments.push(comments)

Сергей
27.09.2018
19:28:30
this.comments.push(comments)
http://joxi.ru/Q2KqoK5C4VbB9r попробовал, результат тот же, геттер не видит данных, которые приходят с задержкой

Алексей
27.09.2018
19:29:30
покажи в компоненте геттер как вызываешь

Сергей
27.09.2018
19:30:13
Алексей
27.09.2018
19:31:29
ИМХО ты тут чет не то делаешь, mounted у тебя вызывается 1 раз и до запроса. Сделай computed userById() return getUsers.filter()

и вот уже этот компутедный пихай в <nuxt>

в mapGetters вызови getUsers: return state.users (в store)

а сейчас ты юзера в самом компоненте не в то время 1 раз получаешь просто и не отслеживаешь апдейты

Сергей
27.09.2018
19:36:24
@BaBL86 спасибо тебе!

Google
Алексей
27.09.2018
19:37:31
не за что, теперь разруливай чтоб nuxt не дергался дважды, в первый раз при загрузке, второй при изменении юзера =) можно попробовать v-if user !== null (дефолт стейт при создании компонента)

я просто на эту проблему в свое время больше дня убил =(

Сергей
27.09.2018
19:39:20
не за что, теперь разруливай чтоб nuxt не дергался дважды, в первый раз при загрузке, второй при изменении юзера =) можно попробовать v-if user !== null (дефолт стейт при создании компонента)
а вот этого не понял, что ты имеешь ввиду под "дёргался" и "при изменении юзера" ? у меня юзер не меняется, у поста один юзер всегда

Алексей
27.09.2018
19:39:56
при переходе с поста на пост у тебя может быть какое-то время до апдейта данных - старая инфа (стор не обновился еще)

и ссылки будут со старым id, а через секунду обновится getByUser и они перерисуются

Сергей
27.09.2018
19:40:42
ага, взял на заметку, спасибо

Алексей
27.09.2018
19:41:09
в общем это на твою логику уже завязываться должно, может у тебя и нет такой проблемы

проверить легко, кстати, если под npm run dev зайдешь на /post/1/ грубо говоря или /user/1/ что у тебя там за линки не смотрел. А потом в строке адреса поменяешь на 2 и энтер - будет ребут, данные 1 юзера, потом апдейт и на глазах перерисуется во второго. У меня так это работало

а, хотя у тебя так не будет, я данные из localStorage восстанавливаю, у меня оффлайн есть

надо переходить без перезагрузки

чтобы vuex не был пустым

глупость сморозил

Сергей
27.09.2018
19:45:51
))))))))))))) я понял, но всё же большое спасибо за твоё время. я возьму на заметку, сейчас просто не могу проверить, ещё не созданы остальные роуты и страницы

Valeriy
27.09.2018
19:49:08
http://joxi.ru/8238X79uJNnR8A
у тебя это SSR?

Сергей
27.09.2018
19:49:27
Valeriy
27.09.2018
19:49:53
а почему не используешь asyncData/fetch?

почему через mounted?

там же вроде если тебе надо загрузить в vuex данные асинхронно, то fetch

если нужно чисто локальнов компонент то asyncData

Google
Сергей
27.09.2018
19:53:29
там же вроде если тебе надо загрузить в vuex данные асинхронно, то fetch
так а разве fetch используется не в компоненте? а я хочу из vuex все получить

Женя
27.09.2018
19:53:48
Всем привет, такой вопрос подскажите пожалуйста. У меня 1 форма для создания и редактирования, при редактировании я подтягиваю данные с бэка, как лучше сделать: редактируемый объект хранить в state и менять свойства по событиям коммитом? или хранить в компоненте формы и через v-model менять? я бы мог менять через v-model и объект в хранилище но у меня store strict

Valeriy
27.09.2018
19:54:31
так а разве fetch используется не в компоненте? а я хочу из vuex все получить
я подозреваю, что на стороне сервера mounted не выполняется в принципе

т.к. это же не браузер и компоненту просто не куда монтироваться

Alex
27.09.2018
19:54:58
Там вообще нету лайфсайкла

Функции просто генерят строки

Admin
ERROR: S client not available

Valeriy
27.09.2018
19:55:23
так а разве fetch используется не в компоненте? а я хочу из vuex все получить
под fetch подразумевается метод компонента самого

Сергей
27.09.2018
19:56:56
Такс, это нужно проверить

Valeriy
27.09.2018
19:57:08
{ el: 'bla-bla-component', data() { return { xuy: '***' } }, async fetch ({ store, params }) { ...await store.dispatch... }, asyncData (context) { return { xuy: 'pesda' } } }

как то так это делается

Valeriy
27.09.2018
19:58:00
ну в asyncData там само собой промис

Алексей
27.09.2018
20:01:14
Хорошо, спасибо.
# Практика и методы работы со сложными формами во Vue.js - Александр Башкирцев (Software developer, Acronis) первый митап

Dmitry
27.09.2018
20:48:45
а в сабже можно передать эвент родительскому компоненту не передавая новый экземпляр Vue в дочерний как эвентбас? чтобы в чайлде сделать что-то типа ths.$emit("something", this); и родитель поймал? у меня почему-то не работает ни this.$emit("something", this); ни this.$parent.$emit("something", this); но если я делаю отдельную шину и передаю её в компонент — работат

Alex
27.09.2018
20:58:48
Значит либо между родителем и дочерним есть ещё посредники, либо не там ловишь

Алексей
27.09.2018
20:59:05
угу, где v-on ?

Alex
27.09.2018
21:00:12
А ещё vue devtools хорошая штука

Dmitry
27.09.2018
21:03:25
угу, где v-on ?
у меня this.projectEvents.$on("something", (o: any) => { console.log("something",); }); это работает. а если делаю this.$on("something", (o: any) => { console.log("something",); }); не работает

Google
Dmitry
27.09.2018
21:05:13
projectEvents соответственно new Vue, который я передаю компоненту <Child v-for="(child, id) … :project-events="getProjectEvents()"

Сергей
27.09.2018
21:05:39
А ещё vue devtools хорошая штука
So so... Много не показывает, только структуру и свойства. События не видит. Я сегодня 2 часа не мог понять почему $emit не работал в простейшей странице, когда только один компонент вложен в App (vuetify). Пришлось напрямую метод из this.$root вызывать

Dmitry
27.09.2018
21:08:56
а у меня показывает события. и если сделать в чайлде this.$parent.$parent.$emit("something", this); то родителю таки долетает

Vlad
27.09.2018
21:09:54
Все нормально он показывает. Вот с вуексом после редаксовских тулзов хреново

Сергей
27.09.2018
21:10:05
а вот то, что дёрнул рут - это не кайф
Да, но я уже куда не пихал @on:my-event в который должно прилететь событие из вложенного компонента

Andrew
27.09.2018
21:10:20
если у меня есть массив обьектов, я вывожу их карточками, и мне необходимо выводить тайтл карточки синим текстом, если статус этого обьекта равен 0, а если 1, то тайтл должен быть красным текстом, как это правильно сделать? через v-if что-то слишком длинные условия получаются. а v-bind больше подходит если обьект 1

Vlad
27.09.2018
21:10:24
Все хотел допилить, но пока разберёшься в сорцах

Dmitry
27.09.2018
21:11:47
угу. у меня эвент нужен в обработчике нажатия кнопки оказалось, что в this.$parent лежит чайлд-компонент в котором кнопка, а уже в this.$parent.$parent — родитель

Alex
27.09.2018
21:12:26
https://vuejs.org/v2/guide/events.html#Why-Listeners-in-HTML

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