使用vue3搭建一个BI框架,给出相关代码
时间: 2024-02-20 19:00:55 浏览: 8
好的,下面是一个简单的使用Vue3搭建BI框架的示例代码:
```html
<template>
<div>
<h1>{{title}}</h1>
<div class="container">
<div class="sidebar">
<ul>
<li v-for="item in menu" :key="item.id">
<a :href="item.link">{{item.label}}</a>
</li>
</ul>
</div>
<div class="content">
<router-view></router-view>
</div>
</div>
</div>
</template>
<script>
import { ref } from 'vue'
import { createRouter, createWebHistory } from 'vue-router'
import Dashboard from './views/Dashboard.vue'
import Reports from './views/Reports.vue'
import Settings from './views/Settings.vue'
export default {
name: 'App',
setup() {
const title = ref('BI框架')
const menu = ref([
{ id: 1, label: '仪表盘', link: '/dashboard' },
{ id: 2, label: '报表', link: '/reports' },
{ id: 3, label: '设置', link: '/settings' },
])
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/', redirect: '/dashboard' },
{ path: '/dashboard', component: Dashboard },
{ path: '/reports', component: Reports },
{ path: '/settings', component: Settings },
],
})
return {
title,
menu,
router,
}
},
mounted() {
this.router.push('/dashboard')
},
}
</script>
<style>
.container {
display: flex;
}
.sidebar {
width: 200px;
padding: 10px;
background-color: #f0f0f0;
}
.content {
flex: 1;
padding: 10px;
}
</style>
```
在这个示例中,我们使用了Vue3的`ref`函数来定义了`title`和`menu`变量,它们可以在模板中使用。我们还使用了Vue Router来定义了三个视图:`Dashboard`、`Reports`和`Settings`。这些视图可以在模板中使用`<router-view>`标签来渲染。最后,我们在`mounted`钩子中使用了Vue Router的`push`方法来将路由定向到`/dashboard`路径。
当然,这只是一个简单的示例,实际上,你需要根据你的需求来定义更多的视图和组件来构建一个真正的BI框架。