帮我写一个Vue3+ts的菜单栏框架
时间: 2023-07-25 19:32:38 浏览: 99
好的,以下是一个简单的Vue3+TypeScript菜单栏框架的示例:
```vue
<template>
<nav>
<ul>
<li v-for="item in menuItems" :key="item.id" @click="handleClick(item)">
{{ item.label }}
</li>
</ul>
</nav>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
interface MenuItem {
id: number;
label: string;
link: string;
}
export default defineComponent({
name: 'Menu',
props: {
menuItems: {
type: Array as () => MenuItem[],
required: true,
},
},
methods: {
handleClick(item: MenuItem) {
// 处理菜单项点击事件
},
},
});
</script>
<style>
/* 样式可自行添加 */
</style>
```
使用方法:
```vue
<template>
<Menu :menu-items="menuItems" />
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import Menu from './Menu.vue';
interface MenuItem {
id: number;
label: string;
link: string;
}
export default defineComponent({
name: 'App',
components: {
Menu,
},
data() {
return {
menuItems: [
{
id: 1,
label: '首页',
link: '/',
},
{
id: 2,
label: '产品介绍',
link: '/products',
},
{
id: 3,
label: '关于我们',
link: '/about',
},
] as MenuItem[],
};
},
});
</script>
```
请根据您的具体需求对代码进行修改和扩展。
阅读全文