# `vue3` 使用ant
## 在 `vue3` 项目中新增 `antd`
> 此处是通过 vue cli 创建 vue3.0 项目,直接在项目目录下新增
### 1. 安装 ant to vue3
通过 `yarn` 或者 `npm` 进行安装 `ant`
```shell
yarn add ant-design-vue@next
# OR
npm i --save ant-design-vue@next
```
!!! 如果是需要全局安装不要使用官方的方法来进行一个安装,在21-08-02 使用官方教程安装后使用 `vue3.0` 方法进行引用会在浏览器内提示 `Cannot read property 'use' of undefined` ,但是在终端中不会有错误提示, 使用上方方法安装,可正常使用
`ant` 官方安装方法
```shell
npm install ant-design-vue --save
yarn add ant-design-vue
```
### 2. `vue3` 中,配置 `ant`
> 全局配置ant
> 在vue3中全局挂载模块和vue2中有一点区别,但是基本差不多
编辑 `src` 目录下的 `main.js` ,使用 `app.use` 来进行导入,支持链式调用
```javascript
import { createApp } from 'vue';
import Antd from 'ant-design-vue';
import App from './App';
const app = createApp(App);
app.use(Antd);//此处为引用antd
app.mount("#app");
// 也可以按照下面方式进行引用,xxx为模块
createApp(app).use(xxx).use(xxx).use(Antd)
```
## `vue3` 递归渲染 `ant` 框架的 sidebar
#### 思路解析
侧边栏部分可以使用 `ant` 的布局 `Layout` 来实现,配合 `ant` 的 导航菜单 `a-menu` 子菜单使用
#### 文件结构
#### 示例代码
#### 踩过的坑
> 多看文档,[ant文档地址](https://2x.antdv.com/components/overview-cn/)
1. 操作一个菜单其他菜单会一起响应.
解决方法: 此时需要给每一个 `a-menu-item` 以及 `a-sub-menu` 设置 `key` 值
3. 渲染出来的子菜单栏在侧边栏旁边生成
解决方法: 在创建 `a-menu` 组件时设置属性 `mod` 为 `inline`
```jsx
其他组件
```