Разница между возобновляемостью, гидратацией и согласованием в современном веб-приложении?

Каковы основные различия между возобновляемостью, гидратацией и согласованием?

Мы знаем, что возобновляемость — это будущее веб-приложений. Можно ли сделать большую часть текущей мета-инфраструктуры (Nextjs, Remix, Sveltekit, Solidstart и т. д.) возобновляемой?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
376
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

SSR означает рендеринг на стороне сервера. Это желательно для поисковой оптимизации и более быстрого времени загрузки. Однако сервер, написанный на Javascript, не имеет того же API, что и браузер. Таким образом, нет возможности полностью отрендерить приложение. Даже если это возможно, это не имеет смысла, поскольку среды выполнения адаптированы для разных вариантов использования. Например, на стороне сервера нет событий кликов и т. д. Таким образом, SSR возвращает частично отрендеренный код приложения + код на стороне клиента.

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

В Resumabilty нет гидратации. Логика клиентской стороны внедряется в код, возвращаемый сервером. Qwik сериализует состояние приложения и состояние фреймворка в HTML, возвращаемый с сервера. События привязываются к пользовательскому интерфейсу при взаимодействии с пользователем, когда пользователь нажимает кнопку.

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

Мы знаем, что возобновляемость — это будущее веб-приложений.

Это смелое заявление. В информатике все является компромиссом.

Можно ли сделать большую часть текущего мета-фреймворка возобновляемым?

Я так не думаю. Может быть, некоторые из них, но определенно не все, потому что возобновляемость трудно модифицировать и может потребоваться полная переработка. Не все приложения нуждаются в SSR или используют поисковую оптимизацию.

Другие вопросы по теме