Size: a a a

React — русскоговорящее сообщество

2021 February 05

MS

Morning Star in React — русскоговорящее сообщество
я новичек если что
источник

MS

Morning Star in React — русскоговорящее сообщество
источник

D

Dmitry in React — русскоговорящее сообщество
Так почему у тебя инитиал стейт при перезагрузке?
источник

MS

Morning Star in React — русскоговорящее сообщество
Dmitry
Так почему у тебя инитиал стейт при перезагрузке?
у кого
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Morning Star
ну я делал для добавления класса для навигации при скролле
Вот так можно. Но почему в эффекте меняешь классы, как то странно. Лучше менять состояние и от этого должны зависеть классы, и ими рулить уже с помощью classnames
источник

MS

Morning Star in React — русскоговорящее сообщество
Тимофей 🛴
Вот так можно. Но почему в эффекте меняешь классы, как то странно. Лучше менять состояние и от этого должны зависеть классы, и ими рулить уже с помощью classnames
источник

MS

Morning Star in React — русскоговорящее сообщество
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Отписку от события в эффекте забыл
источник

Е

Ебатрон in React — русскоговорящее сообщество
Не понимаю разницы между фазой "render" и фазой "commit". Может ли кто-то объяснить по простому?
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Ебатрон
Не понимаю разницы между фазой "render" и фазой "commit". Может ли кто-то объяснить по простому?
Рендер это просто создание объекта виртуального дома, коммит это применение изменений на реальный дом. Если я ничего не путаю
источник

MS

Morning Star in React — русскоговорящее сообщество
Тимофей 🛴
Отписку от события в эффекте забыл
а как это сделать
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Morning Star
а как это сделать
В доке по useEffect посмотри
источник

АМ

Андрей Маргиев... in React — русскоговорящее сообщество
Morning Star
а как это сделать
Clean up функция. Верни в своем эффекте функцию, которая проводит очищающий эффект
источник

АМ

Андрей Маргиев... in React — русскоговорящее сообщество
Morning Star
а как это сделать
В твоём случае вернуть функцию, которая удалит обработчик на объекте Window
источник

Е

Ебатрон in React — русскоговорящее сообщество
Тимофей 🛴
Рендер это просто создание объекта виртуального дома, коммит это применение изменений на реальный дом. Если я ничего не путаю
Спасибо. И хочу уточнить useEffect выполняется уже после стадии commit, а useLayoutEffect во время commit?
источник

MS

Morning Star in React — русскоговорящее сообщество
Андрей Маргиев
В твоём случае вернуть функцию, которая удалит обработчик на объекте Window
тоесть добавить функцию  return function cleanup() {}
источник

MS

Morning Star in React — русскоговорящее сообщество
но как удалить  обработчик на объекте Window
источник

АМ

Андрей Маргиев... in React — русскоговорящее сообщество
Morning Star
тоесть добавить функцию  return function cleanup() {}
можешь просто стрелочную вернуть () => {}
источник

АМ

Андрей Маргиев... in React — русскоговорящее сообщество
и еще у тебя сейчас так код написан, что эффект запускается при каждом ререндере
источник

АМ

Андрей Маргиев... in React — русскоговорящее сообщество
то есть при каждом ре-рендере у тебя заново добавляется обработчик и их может собраться куча
источник