Является ли регидратация с использованием компонентов, содержащих стилизованные компоненты, дорогостоящей?

#reactjs #performance #next.js #styled-components

Вопрос:

Я использую nextjs для SSR. Я использую эту технику для визуализации стилей на стороне сервера. Поэтому, когда DOM загружается, он получает не только HTML, но и весь CSS, необходимый для рисования в теге стиля.

Как только HTML проанализирован, он начинает рисовать — пока все хорошо, проблема начинается после загрузки и анализа JS. В частности _app.js , styled-components удаляет существующие стили, ссылки.

Как это влияет на производительность?

Мое единодушие:

  • FCP и LCP будут отложены из-за перекраски
  • Когда браузер занят рисованием и перекраской, основной поток блокируется и может быть не в состоянии обрабатывать взаимодействие с пользователем, что в конечном итоге приведет к снижению частоты кадров.

Происходит ли то же самое при изменении маршрута, потому что он будет извлекать новые файлы JS, компилировать и устанавливать стили. Это та стоимость, которую мы имеем для стилизованных компонентов?

Ответ №1:

Использование стилизованных компонентов сопряжено с определенными затратами, оно отлично подходит для статически создаваемых веб-сайтов/приложений, но рендеринг на стороне сервера определенно не является его сильной стороной. каждое обновление они пытаются повысить свою производительность в SSR на несколько процентов. Это определенно известная проблема, и такие компании, как Atlassian, работают над преодолением этого узкого места. Это единственная причина, по которой они работают над Compiled CSS-в-JS, которая направлена на устранение этой проблемы путем быстрого доступа к вашему коду во время компиляции. Ознакомьтесь с официальной документацией

а также ознакомьтесь с этой замечательной статьей Натана на LogRocket dev о компиляции и ее происхождении

Комментарии:

1. Обе ссылки одинаковы, не могли бы вы проверить еще раз?

2. Проверьте, что он ОБНОВЛЕН, спасибо, что указали на это.