@stanislavkm

Как реализовать верную работу динамического компонента layout во vue3?

В чем ошибка?

app.vue
<template>
    <component :is="layout">
      <router-view/>
    </component>
</template>

<script>
export default {
  name: 'App',
  computed: {
    layout() {
      const layoutName = this.$route.meta.layout || 'DefaultLayout';
      return () => import(`@/layouts/${layoutName}.vue`)
    }
  },
}
</script>


index.js (роутер)
...
import Home from "../views/Home";
const routes = [
    {
        path: '',
        name: 'Home',
        component: Home,
        meta: {
            layout: () => import('../layouts/DefaultLayout')
        }
    },
...


ну и собственно имеются компоненты DefaultLayout и Home.
  • Вопрос задан
  • 282 просмотра
Пригласить эксперта
Ответы на вопрос 2
Fragster
@Fragster
помогло? отметь решением!
Не надо изобретать велосипед, а надо использовать вложенные маршруты https://router.vuejs.org/guide/essentials/nested-r...
Ответ написан
lifestar
@lifestar
Wallet карты, Видео-продакшн
Для Vite есть удобная штука - vite-plugin-vue-layouts
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы