Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

ClientOnly

Описание

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

Важно: не злоупотребляйте этим компонентом - он предназначен только для случаев, когда ошибок гидратации избежать невозможно. Старайтесь всегда решать проблемы гидратации без обходных путей.

Использование

Оберните содержимое, которое необходимо отрендерить только на клиенте, в компонент ClientOnly. Это содержимое отрендерится только на клиенте, после первого вызова useEffect.

Вы можете передать проп fallback, который отрендерится на сервере и во время первого рендера на клиенте. Затем он заменится на содержимое children. Проп fallback полезен для предотвращения скачков в лэйауте и минимализации разницы между первым и вторым рендером на клиенте.

По умолчанию равен null, следовательно на сервере ничего не отрендерится.

Пример

image

Здесь переменная address не доступна на сервере, но определена на 1м клиентском рендере. Без ClientOnly текст кнопки и наличие iconAfter у компонента Button будут отличаться и возникнет ошибка гидратации. Мы передаём проп fallback, который отрендерит запасную кнопку на сервере и при первом рендере на клиенте, а затем будет рендерится содержимое ClientOnly.

Зависимости

react, хук useIsSsr

Как это работает?

Вы можете узнать, как работает хук useIsSsr.