小编ste*_*ish的帖子

Vue 3 中使用 Vite 实现动态布局

Vue 和 Vite 新手,但试图让动态布局在这里正常工作。我相信我有需要的东西,但问题是元似乎总是作为空对象或undefined.

AppLayout.vue

<script setup lang="ts">
  import AppLayoutDefault from './stub/AppLayoutDefault.vue'
  import { markRaw, watch } from 'vue'
  import { useRoute } from 'vue-router'

  const layout = markRaw(AppLayoutDefault)
  const route = useRoute()

  console.log('Current path: ', route.path)
  console.log('Route meta:', route.meta)

  watch(
    () => route.meta,
    async (meta) => {
      try {
        const component = await import(`./stub/${meta.layout}.vue`)
        layout.value = component?.default || AppLayoutDefault
      } catch (e) {
        layout.value = AppLayoutDefault
      }
    },
    { immediate: true }
  )
</script>

<template>
  <component :is="layout"> …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-router vuejs3 vite

6
推荐指数
1
解决办法
9191
查看次数

标签 统计

vite ×1

vue-router ×1

vue.js ×1

vuejs3 ×1