@vuejs_ru

Страница 1228 из 3900
Kelin
27.08.2017
23:53:23
и, кстати, у тебя неправильный вид

когда человек такое пишет

Google
Kelin
27.08.2017
23:54:19
ну как бы, даже комментировать нет смысла

Illya
27.08.2017
23:59:48
@reeei http://jsbin.com/pahogivece/1/edit?html,js,output

этот вариант гораздо изящнее

вся магия в 54 строчке :)

Kelin
28.08.2017
00:00:28
вот смотри

денис

markers.find(({ id }) => id === activeMarkerId) find(markers, { id: activeMarketId }) разве не красиво?

Illya
28.08.2017
00:00:55
if (oldFormData === newFormData) { this.$store.commit('updateCurrentMarker', newFormData); }

как вынести мозг новичку :)

если данные идентичны - вызываем коммит

фак

Illya
28.08.2017
00:03:51
это старая версия

Google
Roman
28.08.2017
00:03:52
ток не работает

Illya
28.08.2017
00:04:13
http://jsbin.com/noselozico/1/edit?html,js,output

вот

Roman
28.08.2017
00:05:17
http://jsbin.com/noselozico/1/edit?html,js,output
Vue.set(markers, markerIdx, JSON.parse(JSON.stringify(markerData))) в чем у этого преимущества?

Illya
28.08.2017
00:05:27
в смысле?

зачем там vue.seT?

для души

Roman
28.08.2017
00:05:43
и json.parse

Illya
28.08.2017
00:05:44
там сойдет и markser[markerIdx]

а вот json.parse - stringify который везде надо заменить на клонирование объекта там неспроста

если мы не склонируем объект - то получим внутри вьюкса инстанс, привязанный к текущей форме

в джаваскрипте объекты по ссылке передаются

и да - Object.assign не клонирует вложенные объекты ;)

Kelin
28.08.2017
00:08:22
Illya
28.08.2017
00:08:29
ключ к понимаю этого кода - знание что мы не можем делать дип вотч на компьютед проперти :)

Illya
28.08.2017
00:09:21
это последняя проблема на пути к написанию этого кода )

Kelin
28.08.2017
00:09:59
там же есть флаг deep

Illya
28.08.2017
00:10:25
это не поможет )

Kelin
28.08.2017
00:10:53
вложенность больше 1 или что?

Google
Illya
28.08.2017
00:10:59
нет

Kelin
28.08.2017
00:11:08
я просто не смотрел, что там

Illya
28.08.2017
00:11:09
потому что жизнь прекрасна и удивительна :)

єто в принципе во вью, не в примере

Roman
28.08.2017
00:11:24
Если для такой якобы простой операции надо вот столько всего и непонятные watchи то это точно не простой случай и о нем надо писать. хотя в гугле все не то

Illya
28.08.2017
00:12:25
сколько всего?

ну и более того: напишите

Roman
28.08.2017
00:13:10
ну может на деле не много. но достаточно непростые вещи используются

Illya
28.08.2017
00:14:21
вы всегда можете разобраться и написать

так, время пи на часах

пора чуть вздремнуть

Kelin
28.08.2017
00:15:13
good night

Roman
28.08.2017
00:15:22
@xanf_ua ладно спасибо ) будем разбиратся с этим...

Kelin
28.08.2017
00:15:38
?

Illya
28.08.2017
00:18:27
не за что

когда охренеете с 54-57 строк дайте знать ;)

написанное там на первый взгляд не имеет ни малейшего смысла

Kelin
28.08.2017
00:19:23
та мне-то что, я сам уже таких экспериментов миллион понаделал в свое время

Illya
28.08.2017
00:19:34
я не вам )

Kelin
28.08.2017
00:20:06
на вы, я подумал, что обоим)

Google
Roman
28.08.2017
00:20:53
когда охренеете с 54-57 строк дайте знать ;)
ну 2 аргумент это старые значения первый новые

Illya
28.08.2017
00:21:14
угу

и если они равны то отправляем в стору

Kelin
28.08.2017
00:23:19
ну-ка что там, мне самому интересно

Illya
28.08.2017
00:23:48
@kelin2025 для тебя вот пример :)

http://jsbin.com/jaxejayawa/1/edit?html,js,output

обрати внимание как алерт срабатівает на изменение 1 поля (от которого зависит компьютед test)

Admin
ERROR: S client not available

Illya
28.08.2017
00:24:17
и не срабатывает на изменение поля test.data

хотя тест вотчится с deep: true

Kelin
28.08.2017
00:25:36
обратил

хотя тест вотчится с deep: true
то есть такого поведения быть не должно?

Roman
28.08.2017
00:25:45
эм. так мы вотчим же там 2 инпут да?

Illya
28.08.2017
00:26:46
то есть такого поведения быть не должно?
А вот я не знаю. Я понимаю почему так происходит но надо завтра пошерстить гитхаб считают ли создатели Вью такое поведение ожидаемым

Для меня оно ожидаемо, для новичков может быть сюрприз.

Kelin
28.08.2017
00:27:44
ну я с этим столкнулся где-то полгода назад но, с deep: true по задумке должно работать

Roman
28.08.2017
00:31:01
@xanf_ua у меня с этим json.parse Unexpected token u in JSON at position 0 вот такое чет..

Illya
28.08.2017
00:31:31
Значит у вас начальное значение undefined ;)

Kelin
28.08.2017
00:31:37
@xanf_ua можно было даже без вложенности http://jsbin.com/giyazezanu/1/edit?html,js,output

Roman
28.08.2017
00:31:58
начальное значение чего?

Google
Illya
28.08.2017
00:32:31
Того что вы пытаетесь склонировать

Roman
28.08.2017
00:32:57
ну так правильно. я когда по роутам перехожу у меня этот id и должен быть id маркера

Illya
28.08.2017
00:33:01
ну так правильно. я когда по роутам перехожу у меня этот id и должен быть id маркера
Ну так возьмите нормальное клонирование из того же lodash и не делайте нам мозг

Клонирование на parse stringify это для бедных :)

Kelin
28.08.2017
00:33:54
http://jsbin.com/jadujedeji/1/edit?html,js,output Потому что вот

Roman
28.08.2017
00:34:07
эх лодаш..

Roman
28.08.2017
00:35:06
Клонирование на parse stringify это для бедных :)
мне оттуда _.clone или _.deepClone брать?

Illya
28.08.2017
00:35:09
Вообще не поэтому

Roman
28.08.2017
00:35:31
я пока хз в чем разница ?

Kelin
28.08.2017
00:35:48
Вообще не поэтому
сеттера же нет, и поэтому не триггерится, разве нет?

Illya
28.08.2017
00:35:56
Нет

Вернее не так - у вас да

Для простого объекта

Roman
28.08.2017
00:36:29
ну вообще ошибка вот в этом handler(newValue) { this.form = JSON.parse(JSON.stringify(newValue)); },

Illya
28.08.2017
00:36:45
А вот для вложенного не сработает

У нас же сеттер не вызывается

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