如何新建一个路由菜单栏在左侧vue3的Ant Design Layout项目

新建一个vue3路由菜单栏在左侧的Ant Design Layout项目,并且可以自己添加路由,具体的详细步骤是什么呢

以下内容引用CHATGPT:

首先,在Vue3中使用Ant Design Layout组件,需要先安装Ant Design Vue和Ant Design Vue Layout:

npm install ant-design-vue --save
npm install @ant-design/icons-vue --save
npm install @ant-design/icons --save
npm install @ant-design/icons-vue --save
npm install @ant-design-vue/layout --save

接着,在main.js文件中引入Ant Design Vue和Ant Design Vue Layout组件:

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import { Layout } from '@ant-design-vue/layout';
import { Menu } from '@ant-design-vue';
import '@ant-design-vue/layout/dist/layout.css';

const app = createApp(App);
app.use(router);
app.use(Layout);
app.use(Menu);
app.mount('#app');

然后,在App.vue文件中定义Ant Design Layout组件:

<template>
  <a-layout id="components-layout-demo-custom-trigger">
    <a-layout-sider :trigger="null" collapsible :collapsed-width="collapsedWidth" v-model:collapsed="collapsed">
      <div class="logo"></div>
      <a-menu theme="dark" :default-selected-keys="['1']" mode="inline">
        <a-menu-item key="1" icon="user">
          nav 1
        </a-menu-item>
        <a-menu-item key="2" icon="video-camera">
          nav 2
        </a-menu-item>
        <a-menu-item key="3" icon="upload">
          nav 3
        </a-menu-item>
        <a-menu-item key="4" icon="bar-chart">
          nav 4
        </a-menu-item>
        <a-menu-item key="5" icon="cloud-o">
          nav 5
        </a-menu-item>
        <a-menu-item key="6" icon="appstore-o">
          nav 6
        </a-menu-item>
        <a-menu-item key="7" icon="team">
          nav 7
        </a-menu-item>
        <a-menu-item key="8" icon="shop">
          nav 8
        </a-menu-item>
      </a-menu>
    </a-layout-sider>
    <a-layout-content>
      <router-view></router-view>
    </a-layout-content>
  </a-layout>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      collapsed: false,
      collapsedWidth: 80,
    };
  },
};
</script>

<style>
.logo {
  height: 32px;
  background: rgba(255, 255, 255, 0.2);
  margin: 16px;
}

@media (max-width: 575px) {
  .logo {
    height: 32px;
    margin: 16px;
  }
}
</style>

上面的代码中,定义了一个左侧菜单栏,包括一个logo和一个菜单。菜单的内容可以自己根据需要修改。同时,还定义了一个collapsed变量,用于控制菜单的展开和折叠。

最后,在router/index.js文件中定义路由:

import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
  },
  {
    path: '/about',
    name: 'About',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue'),
  },
];

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes,
});

export default router;

这样,一个带有左侧菜单栏的Vue3项目就完成了。可以根据需要修改左侧菜单栏的样式和内容,添加自己的路由。

引用new bing部分回答作答:
要在Ant Design Layout项目中新建一个Vue 3路由菜单栏并添加路由,需要以下步骤:

1 创建Vue 3项目
首先,您需要创建一个Vue 3项目。您可以使用Vue CLI来创建一个新项目:

vue create my-project

2 安装Ant Design Vue
然后,您需要安装Ant Design Vue。您可以使用npm或yarn来安装它:

npm install ant-design-vue@next --save

yarn add ant-design-vue@next

3 创建基本的布局
接下来,您需要在项目中创建一个基本的布局。您可以使用Ant Design Vue提供的Layout组件来创建布局。以下是一个基本的布局代码:

<template>
  <a-layout>
    <a-layout-sider>
      <a-menu :default-selected-keys="['1']">
        <a-menu-item key="1">
          <a-icon type="user" />
          <span>用户管理</span>
        </a-menu-item>
        <a-menu-item key="2">
          <a-icon type="team" />
          <span>团队管理</span>
        </a-menu-item>
        <a-menu-item key="3">
          <a-icon type="file" />
          <span>文件管理</span>
        </a-menu-item>
      </a-menu>
    </a-layout-sider>
    <a-layout-content>
      <router-view />
    </a-layout-content>
  </a-layout>
</template>

在这个布局中,我们使用了Layout、LayoutSider、Menu和MenuItem组件。这里只有一个简单的菜单,您可以根据需要添加更多的菜单项。
4 安装Vue Router
接下来,您需要安装Vue Router。您可以使用npm或yarn来安装它:

npm install vue-router@next --save

yarn add vue-router@next

5 创建路由
然后,您需要创建路由。您可以在项目的根目录下创建一个名为router.js的文件,并添加以下代码:

import { createRouter, createWebHashHistory } from 'vue-router';

const routes = [
  {
    path: '/',
    name: 'Home',
    component: () => import('./views/Home.vue'),
  },
  {
    path: '/about',
    name: 'About',
    component: () => import('./views/About.vue'),
  },
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});

export default router;

在这个路由中,我们定义了两个路由:/和/about。您可以根据需要添加更多的路由。
6 注册路由
接下来,您需要在Vue应用程序中注册路由。您可以在项目的main.js文件中添加以下代码:

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

createApp(App).use(router).mount('#app');

在这个文件中,我们使用createApp函数创建Vue应用程序,并使用use方法注册Vue Router。
7 添加路由链接
接下来,您需要在菜单中添加路由链接。您可以使用Ant Design Vue提供的Menu.Item组件来创建链接。以下是一个基本的代码:

<a-menu :default-selected-keys="['1']">
<a-menu-item key="1" to="/">
<a-icon type="user" />
<span>用户管理</span>
</a-menu-item>
<a-menu-item key="2" to="/about">
<a-icon type="team" />
<span>团队管理</span>
</a-menu-item>
<a-menu-item key="3" to="/files">
<a-icon type="file" />
<span>文件管理</span>
</a-menu-item>
</a-menu>

在这个代码中,我们将Menu.Item组件的to属性设置为我们要导航到的路由路径。

完成!现在您已经成功地在Ant Design Layout项目中创建了一个Vue 3路由菜单栏并添加了路由。您可以根据需要添加更多的路由和菜单项。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7733723
  • 这篇博客也不错, 你可以看下同志们,免费版的Ant Design Pro Vue3 来啦
  • 除此之外, 这篇博客: Vue-Ant Design Vue-普通及自定义校验中的 自定义校验 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 先给一张Ant Design Vue得form表单中不同类型的校验场景图,看看是否有你需要的:
    在这里插入图片描述
    官方提供了 validateStatus, help ,hasFeedback 等属性,你可以不需要使用 Form.creategetFieldDecorator,自己定义校验的时机和内容。

    • validateStatus: 校验状态,可选 ‘success’, ‘warning’, ‘error’, ‘validating’。
    • hasFeedback:用于给输入框添加反馈图标。
    • help:设置校验文案。

    说明一点: 当你使用Ant Design Vue的使用,经过 Form.create 包装的组件将会自带 this.form 属性
    this.form 提供的 关于校验的API如下 :

    方法说明类型
    validateFields校验并获取一组输入域的值与 Error,若 fieldNames 参数为空,则校验全部组件Function([fieldNames: string[]], [options: object], callback: Function(errors, values))

    然后看下Form.Item的参数设置(主要看关于校验的):

    参数说明类型默认值
    extra额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。string/slot
    hasFeedback配合 validateStatus 属性使用,展示校验状态图标,建议只配合 Input 组件使用。booleanfalse
    help提示信息,如不设置,则会根据校验规则自动生成string/slot
    validateStatus校验状态,如不设置,则会根据校验规则自动生成,可选:‘success’ ‘warning’ ‘error’ ‘validating’string

    最后是校验规则设置:
    在这里插入图片描述
    相关的api及参数设置介绍完乐,下面上实例

  • 您还可以看一下 张代浩老师的ant-design-vue UI组件使用讲解课程中的 时间组件(自定义组件)小节, 巩固相关知识点

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
在vue3的Ant Design Layout项目中,要新建一个左侧路由菜单栏可以根据以下步骤进行操作:

  1. 安装vue-router和ant-design-vue
npm install vue-router ant-design-vue --save
  1. 创建路由配置文件

在src目录下新建一个router目录,并在该目录下创建一个index.js文件来配置路由

import { createRouter, createWebHashHistory } from 'vue-router'

const routes = [
  {
    path: '/',
    name: 'Home',
    component: () => import('@/views/Home.vue')
  },
  {
    path: '/about',
    name: 'About',
    component: () => import('@/views/About.vue')
  }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

export default router
  1. 在main.js中使用路由
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')
  1. 创建导航菜单

在src目录下创建一个components目录,并在该目录下创建一个menu目录。在menu目录里创建Menu.vue文件

<template>
  <a-menu :default-selected-keys="defaultSelectedKeys">
    <a-menu-item v-for="menu in menuList" :key="menu.key" :to="menu.path">
      <a-icon :type="menu.icon"></a-icon>
      <span>{{ menu.title }}</span>
      </a-menu-item>
  </a-menu>
</template>

<script>
import { defineComponent } from 'vue'
import { useRoute } from 'vue-router'
import { Menu } from 'ant-design-vue'

export default defineComponent({
  name: 'Menu',
  components: {
    'a-menu': Menu,
    'a-menu-item': Menu.Item,
    'a-icon': Icon
  },
  setup () {
    const route = useRoute()
    const menuList = [
      {
        key: '1',
        title: 'Home',
        icon: 'home',
        path: '/'
      },
      {
        key: '2',
        title: 'About',
        icon: 'info-circle',
        path: '/about'
      }
    ]
    const defaultSelectedKeys = [route.path]
    return {
      menuList,
      defaultSelectedKeys
    }
  }
})
</script>
  1. 修改App.vue文件
<template>
  <a-layout>
    <a-layout-sider width="200px">
      <Menu />
    </a-layout-sider>
    <a-layout-content>
      <router-view />
    </a-layout-content>
  </a-layout>
</template>

<script>
import { defineComponent } from 'vue'
import Menu from '@/components/menu/Menu.vue'
import { Layout } from 'ant-design-vue'

export default defineComponent({
  name: 'App',
  components: {
    'a-layout': Layout,
    'a-layout-sider': Layout.Sider,
    'a-layout-content': Layout.Content,
    'Menu': Menu
  }
})
</script>

这样就可以在Ant Design Layout的左侧添加自定义菜单路由了。
如果我的回答解决了您的问题,请采纳!

要创建一个使用Vue 3、Ant Design Vue 和 Vue Router 的项目,可以按照以下步骤进行操作:
1.首先确保已安装了Node.js。可以在这里下载并安装:https://nodejs.org/
2.使用 Vue CLI 创建一个新项目。在命令行界面中运行以下命令:

img


这将创建一个名为“my-vue3-project”的新Vue项目。你可以根据自己的需要更改项目名称。
3. 进入项目文件夹:

img


4. 安装 Ant Design Vue 和 Vue Router

img


5. 在 src 文件夹中创建一个新文件夹 router,然后在其中创建一个名为 index.js 的文件。在 index.js 中添加以下内容:

img


6. 在 src/views 文件夹中创建两个新文件:Home.vue 和 About.vue。这些文件将分别表示主页和关于页面。
7. 在 src/main.js 文件中,导入 Ant Design Vue 和 Vue Router:

img


8. 更新 src/App.vue 文件,添加一个基本的 Ant Design Layout,并在左侧创建菜单栏:

img


9. 现在,你已经创建了一个使用 Vue 3、Ant Design Vue 和 Vue Router 的项目,它具有一个左侧菜单栏。你可以根据需要向路由文件(觉得好希望可以采纳!)

引用chatGPT作答,要创建一个Vue 3 Ant Design Layout项目并在左侧添加路由菜单栏,可以按照以下步骤进行操作:

1.创建Vue 3项目并安装Ant Design Vue

打开命令行终端并运行以下命令:

vue create my-app
cd my-app
npm install ant-design-vue@next

2.配置Ant Design Vue

打开 main.js 文件并添加以下代码:

import { createApp } from 'vue'
import App from './App.vue'
import Antd from 'ant-design-vue'
import 'ant-design-vue/dist/antd.css'

createApp(App)
  .use(Antd)
  .mount('#app')

3.创建路由
在 src 目录下创建一个名为 router.js 的文件,并添加以下代码:

import { createRouter, createWebHashHistory } from 'vue-router'
import Home from './views/Home.vue'
import About from './views/About.vue'

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    component: About
  }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

export default router

4.创建视图组件

在 src/views 目录下创建 Home.vue 和 About.vue 组件文件,并添加以下代码:

<template>
  <div>
    <h1>Home</h1>
  </div>
</template>

<script>
export default {
  name: 'Home'
}
</script>
<template>
  <div>
    <h1>About</h1>
  </div>
</template>

<script>
export default {
  name: 'About'
}
</script>

5.创建布局组件

在 src/layouts 目录下创建 MainLayout.vue 布局组件文件,并添加以下代码:

<template>
  <a-layout>
    <a-layout-sider collapsible :collapsed-width="80">
      <div class="logo" />
      <a-menu :default-selected-keys="[$route.path]" theme="dark" mode="inline">
        <a-menu-item key="/">
          <router-link to="/">
            <a-icon type="home" />
            <span>Home</span>
          </router-link>
        </a-menu-item>
        <a-menu-item key="/about">
          <router-link to="/about">
            <a-icon type="info-circle" />
            <span>About</span>
          </router-link>
        </a-menu-item>
        <a-menu-item key="/contact">
          <router-link to="/contact">
            <a-icon type="mail" />
            <span>Contact</span>
          </router-link>
        </a-menu-item>
      </a-menu>
    </a-layout-sider>
    <a-layout-content>
      <router-view />
    </a-layout-content>
  </a-layout>
</template>

<script>
export default {
  name: 'MainLayout'
}
</script>

<style scoped>
.logo {
  height: 32px;
  background: rgba(255, 255, 255, 255, 255, 0.2);
margin: 16px;
}
</style>

在布局组件中,我们使用了Ant Design Vue中的 <a-layout><a-menu> 组件来创建左侧的菜单栏。我们将菜单项与路由链接绑定,以便单击菜单项时可以导航到相应的路由。我们还使用了 <router-view> 组件来呈现路由视图。
6. 更新App.vue文件

src 目录下打开 App.vue 文件,并用以下代码替换其中的内容:

  <template>
     <main-layout>
       <router-view />
     </main-layout>
   </template>
   <script>
   import MainLayout from './layouts/MainLayout.vue'

   export default {
     components: {
       MainLayout
     }
   }
   </script>
   <style>
   /* Add any global styles here */
   </style>

在这里,我们将 MainLayout 组件作为主组件包裹路由视图。我们还将 MainLayout 组件导入到 App.vue 文件中,并将其注册为 components 选项。

  1. 运行项目

在命令行终端中运行以下命令来启动项目:

npm run serve

您应该能够在浏览器中看到一个具有左侧菜单栏的页面,并且可以导航到不同的路由视图。要添加新的路由,请更新 router.js 文件,并将菜单项添加到 MainLayout.vue 布局组件中的 <a-menu> 组件中。

【组件篇】在vue3+ts项目中基于antd封装一个通用的左侧菜单栏组件

可以借鉴下
https://blog.csdn.net/ganyingxie123456/article/details/126581705