РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppinSpLyNm 67 of 112 menu
◀ ▶

Именованные макеты в Inertia

Пусть каркас приложения состоит из внешней оболочки и внутренней области контента. Заголовок темы относится к сайту, а отступы и плотность блоков - к внутреннему слою. Массив макетов не даёт обратиться к одному уровню по имени.

Опция layout может быть объектом: ключ - имя слоя, значение - компонент макета. Inertia вкладывает их друг в друга и запоминает имена. Функция setLayoutProps принимает имя первым аргumentом и меняет пропсы только у выбранного макета.

Давайте опишем два именованных компонента и укажем их на странице:

<script setup> import AppLayout from '@/Layouts/AppLayout.vue' import ContentLayout from '@/Layouts/ContentLayout.vue' defineOptions({ layout: { app: AppLayout, content: ContentLayout, }, }) </script> <template> <h1>Reports</h1> </template>

Давайте сменим пропсы только у внутреннего слоя content:

<script setup> import { setLayoutProps } from '@inertiajs/vue3' import AppLayout from '@/Layouts/AppLayout.vue' import ContentLayout from '@/Layouts/ContentLayout.vue' defineOptions({ layout: { app: AppLayout, content: ContentLayout, }, }) setLayoutProps('content', { padding: 'sm', }) </script> <template> <h1>Reports</h1> </template>

Сделайте сводку отдела Legal так, чтобы у внутреннего макета сменились отступы, а внешний каркас остался.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить