@vuejs_ru

Страница 598 из 3900
Andrey
21.06.2017
20:35:28
В идеале, было бы круто каким-то образом в компьютед добавить проверку, что мол если есть флаг, то не меняй себя, если нет, то меняй.
ну ты при первом вызове компьютед достаешь данные, кладешь их в локальную дату, ставишь флаг

при втором вызове смотришь что флаг выставлен и возвращаешь то что есть в локальной дате

но тогда тебе надо и в сторе изменять и локально в компоненте

Kosmos
21.06.2017
20:36:56
При первом данных может не быть еще. Это тоже ньюанс.

Google
Kosmos
21.06.2017
20:37:14
В целом вроде простая задача, а реализовать как-то совсем не просто получается.

Andrey
21.06.2017
20:37:23
ну ты же можешь это провереть в computed

есть там данные или нет

как только данные есть то что-то делаешь

не уверен насчет правильности этого решения, но другого в голове нет, пока что

Kosmos
21.06.2017
20:40:04
А можно вообще из компьютед обратиться к самому себе?

Andrey
21.06.2017
20:40:45
всмысле, к локальному компоненту?

Kosmos
21.06.2017
20:45:42
Нет, можно ли внутри функции компьютед получить ее предыдущее значение?

Illya
21.06.2017
21:00:15
@vjkosmos reselect

Обеспечит нужную функциональность

Kosmos
21.06.2017
21:01:10
@vjkosmos reselect
Сейчас буду искать\читать что это такое. Спасибо.

Illya
21.06.2017
21:01:34
Скорее всего понадобится кастомное условие для кеширования

Google
Kosmos
21.06.2017
21:02:57
А где можно прочитать про reselect, в API не вижу такого?

Kosmos
21.06.2017
21:04:07
Я прошу прощения за большое количество глупых вопросов, я просто не программист, просто для себя что-то пробую.

Andrey
21.06.2017
21:04:14
если я правильно понял, то речь об этой https://github.com/reactjs/reselect

Illya
21.06.2017
21:05:19
Не смотрите что там про реакт

Оно к реакту никак не привязано вообще

Andrey
21.06.2017
21:05:38
да я уже сырцы читнул, там в принципе такой же принцип работы

stepan
21.06.2017
21:20:06
Объясните почему работает https://jsfiddle.net/v9xptyzw/1/ учитывая что https://ru.vuejs.org/v2/guide/list.html#Компоненты-и-v-for ? А у меня никаких :key и bind

Kosmos
21.06.2017
21:20:54
Предварительное мое решение (пока без reselect):

computed: { wordsToDisplay() { let wordsOnDisplay = this.wordsOnDisplay; if (wordsOnDisplay.length === 0 || wordsOnDisplay.filter(word => word.use === 0).length === 0) { wordsOnDisplay = this.wordsToCheck(); } this.wordsOnDisplay = wordsOnDisplay; return wordsOnDisplay; },

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

Kosmos
21.06.2017
21:23:42
Завтра буду разбираться с reselectom, так как пока все равно "костыль".

Stanislav
21.06.2017
21:23:50
Объясните почему работает https://jsfiddle.net/v9xptyzw/1/ учитывая что https://ru.vuejs.org/v2/guide/list.html#Компоненты-и-v-for ? А у меня никаких :key и bind
Начиная с версии 2.3 (вроде) использование v-for на компонентах с key настоятельно рекомендуется

stepan
21.06.2017
21:24:00
Они крайне желательны но не обязательно
Есть предположения на какие грабли потом можно нарваться?

Illya
21.06.2017
21:24:24
Да, кривое обновление списков

Illya
21.06.2017
21:24:34
Не думайте, всегда используйте key

stepan
21.06.2017
21:24:45
ок

Google
Stanislav
21.06.2017
21:25:37
?
v-for на дивах, а не на компонентах. Тут есть разница для key

Illya
21.06.2017
21:26:43
Нет, никакой

Механизм diff'а будет одинаков

Stanislav
21.06.2017
21:28:06
Нет, никакой
по крайней мере, vue в консольке орет, когда key нет на компонентах. А когда нет на тэгах, ничего не пишет

stepan
21.06.2017
21:32:38
А соответсвенно то что я буду биндить в компоненте должно быть в data родителя?

Stanislav
21.06.2017
21:37:56
я могу ошибаться, но мы вроде обсуждали, что при использовании key включается механизм отслеживания и он важен, если элементы списка перемещаются между собой. В противном случае, если нам не надо перемещать элементы и key отсутствует, то Vue сам решит как наиболее эффективно отрендерить список.

Alex
21.06.2017
21:39:30
приветы

как вычисляемому свойству присвоить результат запроса axios?

Alex
21.06.2017
21:42:01
у меня один селект зависит от первого, после выбора первого селекта, мне нужно отправить запрос, чтобы получить массив для второго селекта

stepan
21.06.2017
21:44:47
@xanf_ua @c01nd01r Спаисбо. Разобрался. v-for на компоненте берет данные из родителя в который вложен, в самом компоненте получаем их через props и этот props биндим.

Kelin
21.06.2017
21:45:16
но здесь вообще вотчер нужен

watch: { a (val) { // запрос и кладем что-то куда-то } }

Stanislav
21.06.2017
21:47:15
у меня один селект зависит от первого, после выбора первого селекта, мне нужно отправить запрос, чтобы получить массив для второго селекта
эмитишь событие выбора из первого селекта в родителя -> получаешь данные в родителе, закидываешь в поле data -> поле в data передаешь через пропсы во второй селект

Dima
21.06.2017
21:47:30
ребят, для новых приложений что лучше взять webpack и потом pwa если что сделать или сразу pwa и там как пойдёт?

Google
Emil
21.06.2017
21:51:44
вопрос, возможно, глупый, но как сделать, чтобы это работало? https://jsfiddle.net/f7gpjuo0/

под "работало" я подразумеваю рендеринг двойки при клике по .child

Kelin
21.06.2017
21:52:59
nextTick

хотя

не сработает, наверное

Emil
21.06.2017
21:54:25
я как бы понимаю, почему оно так себя ведёт, и понимаю, что так вообще делать не надо, но мне от этого не легче

Alex
21.06.2017
21:57:33
Admin
ERROR: S client not available

Emil
21.06.2017
21:58:26
https://jsfiddle.net/f7gpjuo0/2/
спасибо. в данном случае клик по .parent и .child делают одно и то же, у меня кейс немного другой

если вы намекаете на изменение data через метод, то не поможет

тут вообще (я так думаю), дело в том, что оба клика отрабатывают. кликая по ребёнку, мы кликаем и по родителю. причём, клик по родителю отрабатывает в последнюю очередь

это мои догадки, но в devtools я вижу нечто подобное

меня щас посетила мысль написать метод и в нём смотреть, по какому DOM элементу был произведён клик. блин, я не хочу так жить =\

stepan
21.06.2017
22:03:21
а вот как посмотреть data-атрибут я пока не знаю )

Emil
21.06.2017
22:04:05
читаете мои мысли практически)

меня щас посетила мысль написать метод и в нём смотреть, по какому DOM элементу был произведён клик. блин, я не хочу так жить =\

https://jsfiddle.net/f7gpjuo0/3/

ну или я ваши)

Google
Emil
21.06.2017
22:04:29
ваш способ даже не так плох. спасибо!

а вот как посмотреть data-атрибут я пока не знаю )
и я имел в виду свойство инстанса

stepan
21.06.2017
22:07:30
на всякий случай вдруг https://jsfiddle.net/f7gpjuo0/4/

Stanislav
21.06.2017
22:08:56
https://jsfiddle.net/f7gpjuo0/5/

Дальше, думаю, понятно :)

Emil
21.06.2017
22:09:45
а вот это не в кассу, пардон)

вы ничего не изменяете в data в своём примере, а именно в этом смысл задачи

Stanislav
21.06.2017
22:10:34
ну какая разница

Stanislav
21.06.2017
22:10:59
Эх... https://learn.javascript.ru/event-bubbling

Emil
21.06.2017
22:11:21
ну да

Stanislav
21.06.2017
22:11:48
@click.stop='myClick("child")'

Igor
21.06.2017
22:12:03
Нашел отличный пример для разбора Firebase, может кому понадобится https://github.com/firebase/firechat

Emil
21.06.2017
22:12:34
@click.stop='myClick("child")'
ёлки палки, вот так всё просто, на самом деле

Stanislav
21.06.2017
22:14:11
у тебя всплытием клик срабатывает на родителе. Собственно, пример с алертами это и демонстрирует. Сначала выполняется метод у чилдрена (x = 2), потом у родителя (x = 1)

Emil
21.06.2017
22:16:52
да я так и думал, но про stopPropagation совсем забыл

спасибо ?

Stanislav
21.06.2017
22:17:13
?

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