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

Задачка для отличников))) Есть вот такой вот не хитрый набор

компонентов. https://clck.ru/sQXrY ( ссылка на vue sfc playground)

Условие:
Если нажать на кнопку у нее анимируется background.
Если компонент обновляется ( хук onUpdate) так же у нее анимируется background

Вопрос
1) как так происходит, что обновляются дочерние компоненты у которых произведена вставка данных через slot, но не обновляются компоненты если данные прокинуты через props? Причем не понятно почему вообще они обновляются если просто меняется props у их родителя, который абсолютно ни на что не влияет…

2) почему после onUpdated 6 кнопка ( нижняя правая) теряет свой переназначенный (!) ref.value и соответсвенно перестает кликаться ?


Вот думаю это я такой счастливый что словил сразу 2 бага? Или я что-то упускаю..

3 ответов

30 просмотров

1. потому что слот - функция, которую нужно вызывать каждый раз, чтобы узнать, что она вернет, а твой статичный пропс - это просто текст, который никак не поменялся, поэтому компонент не ререндерится 2. потому что ты написал в onMounted подмену значения рефа, но она срабатывает только 1 раз, когда компонент маунтится, а при следующей перезаписи рефа (когда компонент обновится) в myButton.value уже будет не рутовая нода компонента, а сам компонент, т.к. твой onMounted уже не отработал

Anton.- Автор вопроса
Artyom Tuchkov
1. потому что слот - функция, которую нужно вызыва...

Так вопрос остается открытым.. пропс я прикидываю динамический, так же как и вставляю данные в слот. Вообще не особо понятно почему у кнопок должен вызываться updated при том что их совершенно не касается изменение не привязанного ни к чему пропса

Anton.
Так вопрос остается открытым.. пропс я прикидываю ...

>пропс я прикидываю динамический если ты его считаешь динамическим только из-за того, что там стоит двоеточие, то нет, пропс здесь статичный, потому что: а) это даже не реактивная переменная, соответственно, это константа, которая никак не трекается реактивной системой вью б) сам пропс - это строка, поэтому легко можно определить, изменился он или нет (а в твоем случае он никак не меняется) вывод: компонент не ререндерится >почему у кнопок должен вызываться updated потому что ты передаешь в эти кнопки слот, который является функцией, который вью вызывает каждый раз, чтобы получить актуальные данные из слота соответственно, происходит ререндер кнопок, которым в слот прилетает актуальный контент, который вернула функция слота вывод: компонент кнопки ререндерится, вызывается updated хук

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта