工具准备
- 安装Node.js,参考[[vue/前端环境安装#Node JS安装|Node JS安装]]
- 安装包管理工具,参考[[vue/前端环境安装#pnpm安装|pnpm安装]]
Vue项目创建
执行命令,由于使用Vue和Typescript,通过–template来指定要使用的模板
pnpm create vite@latest my-vue3-project -- --template vue-ts
按照提示执行:
cd my-vue3-project
pnpm install
pnpm run dev
执行完成,点击localhost:5173,访问启动界面,出现Vite + Vue的欢迎界面。
Vue Router安装
pnpm install vue-router@4
新建路由文件
新建路由文件src/router/index.ts
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';
const routes: Array<RouteRecordRaw> = [
{
path: '/',
name: 'Home',
component: () => import('../views/Home.vue'), // 确保已经创建了 Home.vue 文件
},
{
path: '/about',
name: 'About',
component: () => import('../views/About.vue'), // 确保已经创建了 About.vue 文件
},
];
const router = createRouter({
history: createWebHistory(),
routes,
});
export default router;
新建src/views/Home.vue
<template>
<div>Home</div>
</template>
<script lang='ts' setup name='Home'>
</script>
<style scoped>
</style>
新建src/views/About.vue
<template>
<div>About</div>
</template>
<script lang='ts' setup name='About'>
</script>
<style scoped>
</style>
配置Vue Router
引入Vue Router组件
// src/main.ts
import { createApp } from 'vue';
import App from './App.vue';
import router from './router'; // 引入 router 实例
const app = createApp(App);
app.use(router); // 使用 router
app.mount('#app');
添加Ant Design Vue组件库
安装依赖
pnpm install ant-design-vue@4
pnpm install @ant-design/icons-vue
引入组件库
// src/main.ts
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/reset.css'; // 引入 Ant Design Vue 样式
const app = createApp(App);
app.use(router);
app.use(Antd); // 使用 Ant Design Vue
app.mount('#app');
菜单栏使用
修改src/App.vue
<template>
<a-layout id="components-layout-demo-side" style="min-height: 100vh">
<!-- 侧边栏 -->
<a-layout-sider v-model:collapsed="collapsed" collapsible>
<div class="logo" />
<a-menu theme="dark" mode="inline" :default-selected-keys="['1']">
<a-menu-item key="1">
<pie-chart-outlined />
<span>主页</span>
</a-menu-item>
<a-menu-item key="2">
<desktop-outlined />
<span>关于</span>
</a-menu-item>
</a-menu>
</a-layout-sider>
<!-- 内容区域 -->
<a-layout>
<!-- 头部 -->
<a-layout-header style="background: #fff; padding: 0" />
<!-- 页面内容 -->
<a-layout-content style="margin: 0 16px">
<div :style="{ padding: '24px', background: '#fff', minHeight: '360px' }">
<router-view></router-view>
</div>
</a-layout-content>
<!-- 底部 -->
<a-layout-footer style="text-align: center">
Ant Design ©2018 Created by Ant UED
</a-layout-footer>
</a-layout>
</a-layout>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
import {
PieChartOutlined,
DesktopOutlined,
InboxOutlined,
} from '@ant-design/icons-vue';
export default defineComponent({
name: 'App',
components: {
PieChartOutlined,
DesktopOutlined,
InboxOutlined,
},
setup() {
const collapsed = ref<boolean>(false);
return {
collapsed,
};
},
});
</script>
<style>
#app .logo {
height: 32px;
background: rgba(255, 255, 255, 0.2);
margin: 16px;
}
</style>
到这里,页面上已经显示了左侧菜单栏和右侧内容区。
菜单跳转
修改src/App.vue
中的<a-menu>
标签,使用<router-link>
关联上路径
<a-menu theme="dark" mode="inline" :default-selected-keys="['1']">
<a-menu-item key="1">
<router-link to="/">
<pie-chart-outlined />
<span>主页</span>
</router-link>
</a-menu-item>
<a-menu-item key="2">
<router-link to="/about">
<desktop-outlined />
<span>关于</span>
</router-link>
</a-menu-item>
</a-menu>
再次查看页面,点击后,右侧内容区会发生变化。如果发生变化,即表示菜单跳转成功。