в моем приложении Next.js я хочу отобразить заголовок для мобильных / настольных компьютеров в зависимости от ширины устройства. В общем, это простая задача, я много раз делал это в обычном режиме, используя хуки, такие как useWindowDimensions, где я проверяю ширину объекта окна и использую этот параметр для простого условия. Однако в Next.js я столкнулся с проблемой, заключающейся в том, что мое приложение предварительно отрисовывается на сервере, поэтому, конечно, нет объекта окна, который я мог бы использовать для этого условия. Что я пробовал:
useEffect({...}, []) , которая затем проверяет реальное состояние и запускает повторный рендеринг с правильным условием. Это решит мою проблему с SEO, а также предупреждение о несоответствии некрасивого контента. НО я сталкиваюсь с заметным сдвигом макета, когда пользователь сначала видит мобильный заголовок, а через полсекунды заголовок меняется на заголовок рабочего стола. мерзость ..Короче говоря, должен быть хороший способ визуализации компонентов в Next.js без вышеупомянутых проблем. Я просто еще не мог понять, что лучше всего подходит для такого рода вещей.
Буду признателен за любые подсказки, подсказки или советы в этой теме ❤️
нет, если вы хотите предварительно отрендерить только необходимые компоненты
Кажется, что сдвиг макета - единственный выход. uselayouteffect, вероятно, не будет работать в этом случае, основываясь на моем собственном опыте из-за ssr. Но вы можете попробовать его, если он решит проблему смещения макета. Но вы, вероятно, получите еще одно большое предупреждение





Неужели нельзя решить эту проблему с помощью CSS?