
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
Нет, можно ли внутри функции компьютед получить ее предыдущее значение?

Andrey
21.06.2017
20:45:56

Illya
21.06.2017
21:00:15
@vjkosmos reselect
Обеспечит нужную функциональность

Kosmos
21.06.2017
21:01:10

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

Google

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

Andrey
21.06.2017
21:03:15

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;
},
Но тут есть оно еще не учитывает, что сам большой стейт может менятся "откуда-то" глобально, к примеру загружается из файла новый стейт целиком.

Illya
21.06.2017
21:22:30

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

Stanislav
21.06.2017
21:23:50

stepan
21.06.2017
21:24:00

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

Stanislav
21.06.2017
21:24:31

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

stepan
21.06.2017
21:26:21

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?

Stanislav
21.06.2017
21:40:47

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

Kelin
21.06.2017
21:44:12

Stanislav
21.06.2017
21:44:46

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

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

Stanislav
21.06.2017
21:48:01

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
я как бы понимаю, почему оно так себя ведёт, и понимаю, что так вообще делать не надо, но мне от этого не легче

stepan
21.06.2017
21:56:37

Alex
21.06.2017
21:57:33

Admin
ERROR: S client not available

Emil
21.06.2017
21:58:26
если вы намекаете на изменение 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
ваш способ даже не так плох. спасибо!

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
ну какая разница

Emil
21.06.2017
22:10:48

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

Stanislav
21.06.2017
22:12:32

Emil
21.06.2017
22:12:34

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
?