169 похожих чатов

Подскажите, пожалуйста, где почитать как правильно передавать ref в дочерние

компоненты не теряя их свойств и сохраняя возможность отслеживания изменений через watch?
Если просто :param="dataRef" / :param="props.dataRef" - передается значение.
Задача иметь возможность реагировать на изменения примененные в одном дочернем компоненте в цепочке смежных копонентов.

46 ответов

47 просмотров

Реагировать можно только на объект props в дочерних компонентах. То что у вас пропадает реактивность говорит о том что вы из пропсов данные деструктурируете.

キャラクターセット-Kiniaev Автор вопроса
Stanislav Lashmanov
Реагировать можно только на объект props в дочерни...

Т.е. реагировать не на конкретное свойство внутри пропс, а на весь объект? При любой передаче ref в свойства в компоненте значение. Никак не пойму, это нормально и так и должно быть или что-то я делаю не так?

Props это computed на который можно реагировать. const foo = props.foo // потеряли реактивность, т.к. следим уже не за пропсами.

キャラクターセット-Kiniaev Автор вопроса
Stanislav Lashmanov
Props это computed на который можно реагировать. c...

watch (props.refId, ...) и вот тут уже лежит значение.

キャラクターセット-Kiniaev Автор вопроса
Stanislav Lashmanov
watch(() = > props.field, ...

Руководствуюсь - https://vuejs.org/guide/essentials/watchers.html

キャラクターセット-Kiniaev Автор вопроса
キャラクターセット Kiniaev
screenshot Руководствуюсь - https://vuejs.org/guide/essential...

Только ожидаю, что ref придет из свойства пропсов

キャラクターセット Kiniaev
screenshot Руководствуюсь - https://vuejs.org/guide/essential...

пропсы не реактивны, поэтому нужно () => props.field

キャラクターセット-Kiniaev Автор вопроса
Stanislav Lashmanov
Это другое же

Да!? А куда смотреть?

Пропсы реактивны как раз

キャラクターセット Kiniaev
Да!? А куда смотреть?

Я не знаю где это в доке, но foo !== foo.bar, это разные выражения.

Егор Старцев
Пропсы реактивны как раз

то есть watch(props.field) будет норм работать?

キャラクターセット-Kiniaev Автор вопроса
Stanislav Lashmanov
Я не знаю где это в доке, но foo !== foo.bar, это ...

Тут я вижу только одно утверждение. Но никак не пойму как это применимо к моей задаче ( Прошу пояснить.

Егор Старцев
Нет, то есть watch(props) будет работать

А, понял, блин а логично на самом деле :)

キャラクターセット Kiniaev
Тут я вижу только одно утверждение. Но никак не по...

Следить можно только за рефами. Ты хочешь чтобы ты написал watch(1, ...) и оно автоматически знало когда ты изменил объект в котором лежала эта единица, так не работает.

キャラクターセット-Kiniaev Автор вопроса
キャラクターセット-Kiniaev Автор вопроса
Stanislav Lashmanov
Следить можно только за рефами. Ты хочешь чтобы ты...

Да, я понимаю, что следить можно только за рефами. В родительском компоненте я вкладываю реф в свойсва дочернего. Ожидаю, что в пропсах дочернего будет лежать реф, но там значение. Мой вопрос как следить за изменением реф в одном компоненте в других смежных компонентах?

キャラクターセット Kiniaev
Да, я понимаю, что следить можно только за рефами....

вотчер для внутреннего состояния, а так емиты, v-model

キャラクターセット Kiniaev
Да, я понимаю, что следить можно только за рефами....

props не оборачивает то что вы передаёте в рефы дополнительно и не должен

キャラクターセット-Kiniaev Автор вопроса
Roman Kocherezhchenko 🇺🇦
Хз, не помню как к этому пришел :)

Просто я или плохо читаю и не туда нажимаю. https://vuejs.org/guide/essentials/watchers.html

キャラクターセット-Kiniaev Автор вопроса
Roman Kocherezhchenko 🇺🇦
вотчер для внутреннего состояния, а так емиты, v-m...

Да, но это очень громоздко, ведь наверняка все проще должно быть!?

キャラクターセット-Kiniaev Автор вопроса

Вот примерно в этом у меня и возникакет недопонимание. Он не то чтобы не оборачивает, он скорее разворачивает ссылки в значения.

キャラクターセット Kiniaev
Да, но это очень громоздко, ведь наверняка все про...

можно еще такие штуки использовать, https://www.youtube.com/watch?v=qGqebwUxWrw

キャラクターセット-Kiniaev Автор вопроса

Так это просто иной реактивный источник. Если предположить, что в пропсе лежит реф, то должно работать props.dataRef. У меня так не получается и потому я спросил, это я что-то делаю не так или так и должно быть. А если так и должно быть, то как сделать правильно )

キャラクターセット-Kiniaev Автор вопроса

нет, в вью даже defineModel завезли который делает тоже самое, ваше "элегантное" решение :)

キャラクターセット-Kiniaev Автор вопроса

Вот так проще и одной строчкой

キャラクターセット-Kiniaev Автор вопроса
キャラクターセット-Kiniaev Автор вопроса
キャラクターセット Kiniaev
Вот так проще и одной строчкой

Я не пытаюсь что-то доказать. Мне хочется научиться делать правильно.

キャラクターセット-Kiniaev Автор вопроса
Roman Kocherezhchenko 🇺🇦
https://www.youtube.com/watch?v=jJwKmoUut8A

Большое спасибо! Но все равно выходит, что для работы с ссылкой вместо прямой работы с ней нагородили эмит + компьютед и все это еще и "узаконили". Зачем!?

キャラクターセット Kiniaev
Большое спасибо! Но все равно выходит, что для раб...

можете сразу мутировать пропсы 🌚, впринципе можно, и, главное, удобно

キャラクターセット-Kiniaev Автор вопроса
Vlad 🍍 Starkovsky️️
https://blog.vuejs.org/posts/vue-3-3

Спасибо! Эта возможность в разделе Experimental Features.

キャラクターセット Kiniaev
Вот примерно в этом у меня и возникакет недопонима...

Он ничего не разворачивает. Если написать :foo="1" то туда и должна прийти единица.

キャラクターセット-Kiniaev Автор вопроса
Stanislav Lashmanov
Он ничего не разворачивает. Если написать :foo="1"...

А если :foo="dataRef" ? Он развернет (деструктурирует) ссылку в свойство.

キャラクターセット-Kiniaev Автор вопроса
Stanislav Lashmanov
Да, но речь была про то что он оборачивает.

Я такого нигде не говорил. Я сказал, что он развернет ссылку в значение.

キャラクターセット Kiniaev
Я такого нигде не говорил. Я сказал, что он развер...

Даже если так это ничего не меняет, надо следить за объектом пропсов

キャラクターセット-Kiniaev Автор вопроса

Да, Вы правы, большое спасибо! Я невнимательно прочитал документацию, сделал поспешные ошибочные предположения.

キャラクターセット Kiniaev
Да, Вы правы, большое спасибо! Я невнимательно про...

да, весьма опрометчиво было делать поспешные выводы о архитектурных решениях данного фреймворка, но ничего, вы на верном пути!

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Карта сайта