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

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

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

46 ответов

129 просмотров

Реагировать можно только на объект 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 Автор вопроса
Stanislav Lashmanov
Это другое же

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

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

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

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

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

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

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

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

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

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

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

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

キャラクターセット 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
Да, Вы правы, большое спасибо! Я невнимательно про...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта