# VUE3封装教程 **Repository Path**: xiaole9924/vue3-encapsulation-tutorial ## Basic Information - **Project Name**: VUE3封装教程 - **Description**: 🍺 持续更新,vue3组件封装 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-01-17 - **Last Updated**: 2023-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: element-plus, vue3, TypeScript, vite2 ## README ``` 欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,本文纯手打 [小乐] 专权。 持续更新中... ``` # 开发指南 基于 `vue3` + `vite` + `element-plus` 二次封装 #### 项目特点 - 封装伸缩菜单-抽离头部和侧边栏组件 - 封装省市区-巧用watch来达到三级联动 - 封装趋势标记-计算属性的妙用实现文字颜色 - 封装通知菜单-icon和badge组件的组合使用 - 封装导航菜单-使用tsx实现无限层级菜单 - 封装进度条-完成进度条动态加载效果 - 封装时间组件 - 封装城市选择组件 - 封装表单组件 - 封装表格组件 - 封装日历组件 ## 搭建 `vite` 项目并配合路由和 `element-plus` #### 构建 `vite` + `vue` 模板 ```bash # npm 6.x npm init vite@latest my-vue-app --template vue # npm 7+, 需要额外的双横线: npm init vite@latest my-vue-app -- --template vue # yarn yarn create vite my-vue-app --template vue ``` #### 安装 `router` + `element-plus` ```bash cnpm i -S vue-router@next element-plus ``` #### 路由基本配置 ```typescript import { createRouter , createWebHashHistory, RouteRecordRaw } from "vue-router" // 静态路由 export const constantRoutes: Array = [ { path: "/", component: () => import("../views/home.vue") } ] // 异步路由 export const asyncRoutes: Array = []; const router = createRouter({ history: createWebHashHistory(), routes: constantRoutes }) export default router ``` #### layout 布局组件 基本布局 ```vue ``` #### layout视图 ![输入图片说明](%E5%9F%BA%E6%9C%AC%E5%B8%83%E5%B1%80.png) ## 省市区联动组件 #### 视图 ![输入图片说明](%E7%9C%81%E5%B8%82%E5%8C%BA.png) #### 组件内容 ```vue ``` #### 调用方法 ``` vue ``` ## 趋势组件 #### 视图 ![输入图片说明](%E8%B6%8B%E5%8A%BF.png) #### 组件内容 ```vue ``` #### 调用方法 ``` vue # 调用方法 ``` ## 通知菜单组件 #### 视图 ![输入图片说明](%E9%80%9A%E7%9F%A5%E8%8F%9C%E5%8D%95.png) #### 组件内容 ```vue F ``` #### 调用方法 ```vue ``` ## 表单组件 #### 视图 #### 组件内容 #### 调用方法 ## 表格组件 #### 视图 ![输入图片说明](%E8%A1%A8%E6%A0%BC.png) #### 组件内容 #### 调用方法