(страницы)?
У меня на картинках есть макет, там видно что у неавторизованного пользователя должен быть шаблон с пустой шапкой, у авторизованного шаблон с шапкой и левой панелькой, а контент (страница) отличается, а для админа немного отличается шапка и добавляется вторая верхняя пандель (подшапка), а контент тоже отличается.
Я немного знаю о router-view, но он позволяет добавить только один шаблон, а мне нужно как бы вложенный многомерный шаблон.
Еще что-то слышал о layouts, но ничего не нашел.
Как такое реализовать?
Как-то раз игрался и сделал вот такую черную магию, но мне понравилось, что каждый роут сам определяет с каким лэйаутом он будет показываться. app.vue <template> <RouterView name="layout" v-slot="{ Component }"> <component :is="Component"> <LayoutContent :depth="0"> <RouterView :key="$route.path"></RouterView> </LayoutContent> </component> </RouterView> </template> <script setup lang="ts"> import { getCurrentInstance } from "vue"; import { RouterView, viewDepthKey } from "vue-router" const LayoutContent = ( { depth }: { depth: number }, { slots: { default: slot } }: any ) => ( /** @ts-ignore */ getCurrentInstance().provides[viewDepthKey] = depth, slot() ) </script> router\index.ts export default createRouter({ ... routes: [ { path: "/", name: "Home", components: { layout: () => import("../layouts/Base.vue"), default: () => import("../pages/HomePage.vue"), }, }, ] }
Уже давно https://mithril.js.org/simple-application.html
Как-то не вливаешься ты в наш дружный, амбициозный коллектив, Ремизов. Тебе не кажется?
Это потому, что у меня всё работает? Или потому, что я сосредотачиваюсь на решение задач, а не написании кода ради кода?
эй, у меня тоже все работает и свою задачу решает) и не требует никаких плагинов и зависимостей. Но из ссылки я заметил, что тоже самое можно сделать через рендер-функцию. Как-нибудь попробую так сделать
Обсуждают сегодня