Vue3 createSSRApp()Сведения о функции
createSSRApp()— это функция, специально используемая для серверного рендеринга (SSR, Server-Side Rendering).
createSSRApp()За счёт генерации HTML-содержимого на стороне сервера она улучшает начальную скорость загрузки страницы и показатели SEO.
иcreateApp()По сравнению с,createSSRApp()она лучше подходит для сценариев применения, требующих серверного рендеринга.
1. Что такое серверный рендеринг (SSR)?
Серверный рендеринг (SSR) — это процесс генерации HTML на сервере с последующей отправкой сгенерированного HTML клиенту для отображения. В отличие от традиционного клиентского рендеринга (CSR, Client-Side Rendering), SSR может помочь повысить начальную скорость загрузки страницы и улучшить поисковую оптимизацию (SEO).
При клиентском рендеринге браузер сначала загружает пустой HTML-файл, а затем динамически создаёт содержимое страницы с помощью JavaScript. При серверном рендеринге сервер уже сгенерировал полное HTML-содержимое, и браузеру нужно только отобразить это содержимое.
2. createSSRApp()Роль
В Vue.js 3,createApp()является стандартной функцией для создания клиентских приложений Vue. ИcreateSSRApp()являетсяcreateApp()вариант, специально предназначенный для создания приложений Vue, поддерживающих серверный рендеринг.
createSSRApp()Основная роль — генерировать HTML-содержимое приложения Vue на стороне сервера и отправлять его клиенту. Это обеспечивает согласованность приложения Vue на стороне сервера и на стороне клиента, тем самым избегая проблемы несоответствия результатов рендеринга между клиентом и сервером.
3. ИспользованиеcreateSSRApp()Создание приложения
ИспользованиеcreateSSRApp()Шаги по созданию приложения Vue аналогичны использованиюcreateApp()но особое внимание следует уделить некоторым конфигурациям, связанным с SSR.
3.1 Базовое использование
Пример
import { createSSRApp } from 'vue';
// Импорт корневого компонента
import App from './App.vue';
// Создание SSR-приложения
const app = createSSRApp(App);
// Смонтируйте приложение
app.mount('#app');
В этом примере мы используемcreateSSRApp()создали приложение Vue, поддерживающее серверный рендеринг, и смонтировали его в указанный DOM-элемент.
3.2 Различия между серверной и клиентской сторонами
На стороне сервера и на стороне клиента,createSSRApp()поведение различается:
- Серверная сторона: На стороне сервера,
createSSRApp()сервер сгенерирует HTML-содержимое приложения Vue и отправит его клиенту. - Клиентская сторона: На стороне клиента,
createSSRApp()клиент подхватит HTML-содержимое, сгенерированное сервером, и активирует его как интерактивное приложение Vue.
3.3 Настройка SSR-приложения
При настройке SSR-приложения необходимо учитывать следующие моменты:
- Избегайте использования клиентских API на стороне сервера: Например,
windowилиdocumentобъект недоступен на стороне сервера. - Используйте
onServerPrefetchхуки: При рендеринге на стороне сервера можно использоватьonServerPrefetchхуки для предварительной загрузки данных.
Пример
async onServerPrefetch() {
// Предварительная загрузка данных на стороне сервера
this.data = await fetchData();
}
};
4. createSSRApp()иcreateApp()Различия
| Характеристика | createApp() |
createSSRApp() |
|---|---|---|
| Среда рендеринга | Рендеринг на стороне клиента (CSR) | Рендеринг на стороне сервера (SSR) |
| Начальная скорость загрузки | Медленнее, зависит от выполнения JavaScript на стороне клиента | Быстрее, сервер уже сгенерировал HTML |
| SEO | Плохо, поисковым системам трудно сканировать динамическое содержимое | Лучше, поисковые системы могут сканировать полный HTML |
| Применимые сценарии | Одностраничное приложение (SPA) | Приложения, требующие SEO и быстрой загрузки |
Другие расширения
Глобальный API Vue3