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

Может кто нибудь объяснить почему реф здесь назван previousOverflow? и

какое значение получит этот реф в первый раз?

10 ответов

25 просмотров

потому что хранит прошлое состояние overflow (до смены строкой ниже) первое значение будет то, которое уже установлено у body на момент маунтинга

999- Автор вопроса
Artyom Tuchkov
потому что хранит прошлое состояние overflow (до с...

а для чего запоминать это состояние? почему просто не сделать что-то вроде onMounted(() => { document.body.style.overflow = 'hidden'; }) onBeforeUnmount(() => { document.body.style.overflow = 'auto'; })

999
а для чего запоминать это состояние? почему просто...

возможно, автору очень хотелось предусмотреть кейс, когда изначально overflow стоит отличный от auto, но вероятность этого стремится к нулю, поэтому я бы тоже сделал так, как ты написал ну и даже если все равно очень хочется сохранить начальное состояние, то для этого не нужно создавать отдельную переменную и делать ее рефом onMounted(() => { const { overflow } = document.body.style; document.body.style.overflow = 'hidden'; onBeforeUnmount(() => document.body.style.overflow = overflow); });

999- Автор вопроса
Artyom Tuchkov
возможно, автору очень хотелось предусмотреть кейс...

не знал что онБефорАнмаунт можно внутри онМаунтед написать, разве это не приведет к инициализации onBeforeUnmount каждый раз когда будет появляться компонент?

так компонент и маунтится только 1 раз, поэтому при маунте и регистрируется коллбэк на анмаунт, который тоже вызовется только 1 раз

999
а для чего запоминать это состояние? почему просто...

Там в комментариях написано для чего он это писал Наверняка не просто так, раз сделал

999- Автор вопроса
Artyom Tuchkov
так компонент и маунтится только 1 раз, поэтому пр...

нажал на кнопку => маунтится компонент => вижу модалку нажал на крестик => анмаунтится компонент => пропала модалка как это маунтится один раз?

999
нажал на кнопку => маунтится компонент => вижу мо...

второй раз будет маунтиться новый экземпляр

999
нажал на кнопку => маунтится компонент => вижу мо...

так вот в твоем примере он и смаунтился 1 раз, второго нет если ты нажмешь еще раз на кнопку, то будет создан полностью новый интсанс компонента, у него будет заново вызван маунтед и заново зарегистрирован коллбэк (единственный, т.к. инстанс новый)

999- Автор вопроса
Artyom Tuchkov
так вот в твоем примере он и смаунтился 1 раз, вто...

ааа теперь понял) гениально, спасибо за пояснение!)

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

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

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