我有你常用的管理仪表板(Core-UI),我根据自己的需要进行了修改。我有一个"旁边"每当我在MonitorAside.vue
页面上时,我想加载Monitor
的组件(我正在使用vue-router
)
这是一个小小的破坏。
src/containers/Full.vue
导入所有主要组件(包括旁边),然后使用router-view
根据路径渲染视图。
src/components/Aside.vue
是有问题的组件。它包含固定内容,但如果其他组件需要,我希望动态更改其内容。
src/views/Monitor.vue
是有问题的页面,因此是动态需要注入/交换aside
组件内容的页面。 请注意,此组件未在Full.vue
中导入,而是通过路由器呈现。
src/views/asides/MonitorAside.vue
页面时, Aside.vue
是我想要加载到Monitor
的组件。
我将如何做到这一点?
答案 0 :(得分:1)
因此,每当vue-router导航到其他页面时,您希望Aside
组件的内容发生变化?您可以观看$route
值,然后根据您的路线名称呈现内容,例如:
<template>
<div>
<monitor-aside v-if="page === 'monitor'"></monitor-aside>
<div v-else>
<!-- your default aside content -->
</div>
</div>
</template>
<script>
import MonitorAside from '../views/asides/MonitorAside.vue'
export default {
data() {
return {
page: null
}
},
methods: {
setContent(routeName) {
if (routeName === 'Monitor') {
this.page = 'monitor';
} else {
this.page = null;
}
}
},
created() {
this.setContent(this.$route.name);
},
watch: {
'$route'(to, from) {
this.setContent(to.name);
}
}
components: {
MonitorAside
}
}
</script>