Плагин для сервера в Nuxt
Часть данных удобнее собрать на сервере в момент создания приложения: метка окружения, подпись сборки, короткая строка для отладки. Такой код не должен попадать в бандл браузера и не обязан повторяться на клиенте при каждой навигации.
Давайте разберём серверный плагин.
Суффикс .server в имени файла
ограничивает выполнение серверной
стороной Nuxt. Браузер этот модуль
не загружает.
Файл stamp.server.js при старте
отдаёт простую строку через
provide:
export default defineNuxtPlugin(() => {
return {
provide: {
stamp: () => 'server',
},
};
});
Страница читает значение через
функцию useNuxtApp и выводит
его в разметке. При SSR строка
server попадает в HTML
ответа ещё до гидратации:
<script setup>
const { $stamp } = useNuxtApp();
</script>
<template>
<p>
Stamp: {{ $stamp() }}
</p>
</template>
Серверный плагин не читает секреты
с диска и не открывает произвольные
файлы - для учебного примера
достаточно константы в коде.
Смысл суффикса .server в том,
что логика остаётся на стороне
рендера, а страница получает
готовое поле provide так же,
как из обычного плагина.
Создайте серверный плагин,
который через provide
отдаёт слово warehouse,
и выведите его в HTML страницы.
Создайте серверный плагин
region.server.js со строкой
eu в provide
и покажите регион в шапке
главной страницы.