vuejs根据路由组件动态加载组件
vuejs loading component dynamically depending on route component
我是 Vuejs 的新手,我想知道如何根据访问的路径将组件加载到 App.vue
。
在我的路由器中 -> index.js
我有:
import { createRouter, createWebHistory} from 'vue-router'
import Events from '../views/Events.vue'
const routes = [
{
path: '/',
name: 'events',
component: Events
}
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
在我的 App.vue
中,我有一个模板要用于整个网站,所以我想在这里加载模板而不是将它加载到每个组件中。
我的模板在屏幕中央有 1 个框,因此内容会根据用户转到的路线而变化。
除了从路由文件中调用组件内容,有没有更好的方法根据访问的路由将其动态加载到App.vue?
我可以在 App.vue 中硬编码,例如:
<template>
<Events />
</template>
<script>
import Events from './views/Events.vue'
export default defineComponent({
components: {
Events
},
</script>
但这并不能解决我的事件组件根据访问的路径动态加载的问题。有没有一种方法可以通过 this.$route
之类的方式访问底层组件来加载组件而不是对其进行硬编码。
router-view
组件将根据其路径呈现组件:
<template>
<router-view/>
</template>
<script>
export default defineComponent({
})
</script>
我是 Vuejs 的新手,我想知道如何根据访问的路径将组件加载到 App.vue
。
在我的路由器中 -> index.js
我有:
import { createRouter, createWebHistory} from 'vue-router'
import Events from '../views/Events.vue'
const routes = [
{
path: '/',
name: 'events',
component: Events
}
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
在我的 App.vue
中,我有一个模板要用于整个网站,所以我想在这里加载模板而不是将它加载到每个组件中。
我的模板在屏幕中央有 1 个框,因此内容会根据用户转到的路线而变化。
除了从路由文件中调用组件内容,有没有更好的方法根据访问的路由将其动态加载到App.vue?
我可以在 App.vue 中硬编码,例如:
<template>
<Events />
</template>
<script>
import Events from './views/Events.vue'
export default defineComponent({
components: {
Events
},
</script>
但这并不能解决我的事件组件根据访问的路径动态加载的问题。有没有一种方法可以通过 this.$route
之类的方式访问底层组件来加载组件而不是对其进行硬编码。
router-view
组件将根据其路径呈现组件:
<template>
<router-view/>
</template>
<script>
export default defineComponent({
})
</script>