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

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

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

10 ответов

8 просмотров

потому что хранит прошлое состояние 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 раз, вто...

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

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

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

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта