## 初始化项目
```bash
git clone https://github.com/xiuxiuyifan/vue3-element-plus-admin.git
yarn install
yarn start
```
## 文件目录
```
├── babel.config.js // babel 配置文件
├── commitlint.config.js // git commit 规范配置文件,自动生成的
├── package-lock.json
├── package.json
├── prettierignore // prettier 忽略文件
├── public // 静态文件
│ ├── api // 模拟api
│ │ ├── login.json
│ │ ├── menu.json
│ │ └── userInfo.json
│ ├── favicon.ico
│ ├── img
│ │ └── bg-left.png
│ └── index.html
├── README.md
├── src
│ ├── App.vue
│ ├── assets
│ │ ├── img // 需要压缩的图片
│ │ │ ├── avatar.png
│ │ │ ├── bg.png
│ │ │ └── logo.png
│ │ └── less
│ │ ├── base.less
│ │ ├── element-plus-#0054FE
│ │ ├── index.less
│ │ └── theme.less
│ ├── base-ui // 基础的 ui组件
│ │ ├── base-table-search
│ │ │ ├── form-item.vue
│ │ │ ├── index.vue
│ │ │ └── types.ts
│ │ └── breadcrumb
│ │ ├── index.ts
│ │ ├── src
│ │ └── types
│ ├── components // 业务公用的组件
│ │ └── Layout
│ │ ├── hooks
│ │ ├── index.ts
│ │ ├── Layout.vue
│ │ └── Menu
│ ├── config // 最开始的配置,后面用cli 自带的.env 文件替换了
│ │ └── index.ts
│ ├── global // 全局的一些配置,入口,
│ │ ├── index.ts
│ │ └── register-element.ts
│ ├── main.ts
│ ├── mock
│ │ └── index.ts
│ ├── router // 公共的路由
│ │ └── index.ts
│ ├── service // api 接口
│ │ ├── index.ts
│ │ ├── login
│ │ │ ├── login.ts
│ │ │ └── types.ts
│ │ ├── request
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ └── types.ts
│ ├── shims-vue.d.ts
│ ├── store
│ │ ├── index.ts
│ │ ├── login
│ │ │ ├── login.ts
│ │ │ └── types.ts
│ │ └── types.ts
│ ├── utils // 辅助函数
│ │ ├── local-catch.ts
│ │ ├── mapping-menu.ts
│ │ └── types.ts
│ └── views // 页面
│ ├── back-end
│ ├── business-component
│ │ └── search-table
│ ├── data-structure
│ ├── database
│ ├── front-end
│ │ ├── base-language
│ │ └── framework-study
│ ├── home
│ │ └── index.vue
│ └── login
│ ├── cpns
│ ├── hooks
│ ├── index.vue
│ └── types.ts
├── tsconfig.json
├── vue.config.js
└── yarn.lock
```
## 初步展示
![image-20220326215853491](https://s2.loli.net/2022/03/26/FwqfTGj2ukHQm3i.png)
![image-20220326215919025](https://s2.loli.net/2022/03/26/87OFVadButXSKU6.png)
## [源码地址](https://github.com/xiuxiuyifan/vue3-element-plus-admin)
## editorconfig规范
```
# http://editorconfig.org
root = true
[*] # 表示所有文件适用
charset = utf-8 # 设置文件字符集为 utf-8
indent_style = space # 缩进风格(tab | space)
indent_size = 2 # 缩进大小
end_of_line = lf # 控制换行类型(lf | cr | crlf)
trim_trailing_whitespace = true # 去除行首的任意空白字符
insert_final_newline = true # 始终在文件末尾插入一个新行
[*.md] # 表示仅 md 文件适用以下规则
max_line_length = off
trim_trailing_whitespace = false
```
## prettier 规范
```shell
yarn add prettier -D
```
+.prettierrc
```
{
"useTabs": false,
"tabWidth": 2,
"printWidth": 100, // 100个字符换行
"singleQuote": true, // 单引号
"trailingComma": "none", //在对象或数组最后一个元素后面是否加逗号
"bracketSpacing": true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"
"semi": false // 句尾添加分号
}
```
+prettierignore
```
/dist/*
.local
.output.js
/node_modules/**
**/*.svg
**/*.sh
/public/*
```
添加脚本进行格式化修复
```
"prettier": "prettier --write ."
```
让eslint 和prettier结合起来两个插件
```
yarn add eslint-config-prettier eslint-plugin-prettier -D
```
eslintrc.js
```javascript
extends: [
'plugin:vue/vue3-essential',
'eslint:recommended',
'@vue/typescript/recommended',
'@vue/prettier',
'@vue/prettier/@typescript-eslint',
'plugin:prettier/recommended' // 新增
],
```
## git 和eslint
```
npx husky-init && yarn instal
```
.husky/pre-commit
```
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn lint
```
## git commit 规范
```
yarn add commitizen -D
npx commitizen init cz-conventional-changelog --save-dev --save-exact
```
在package.json里面可以看见
```
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
```
然后再使用进行提交代码
```
git add.
npx cz
```
## 代码提交限制
```
yarn add @commitlint/config-conventional @commitlint/cli -D
```
+commitlint.config.js
```
module.exports = {
extends: ['@commitlint/config-conventional']
}
```
添加 message hook拦截 执行以下命令
```
npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"
```
## element-plus引入
按需引入
```
yarn add babel-plugin-import -D
```
## 环境区分
## 引入axios
```
yarn add axios
```
## mock 数据
```
yarn add @types/mockjs mockjs -D
```
## css 初始化
```
yarn add normalize.css
```
+ `view` 下面的文件命名 采用中划线
+ 页面子组件放在 `cpns` 下面
## 用到的ts 知识点
```
ts 获取组件实例的类型
const instance = ref<InstanceType<typeof ElForm>>()
```
## 用户登录
```
处理用户的token过期,一般是放在后台来控制,然后前端在拦截器里面做处理。
前端也可以在写localstorage里面,同时写入过期时间,但是不推荐。
```
## ts 使用问题
![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/91095fee490548658d5a2ddb360fbd97~tplv-k3u1fbpfcp-watermark.image?)
## 小结。
代码还在优化中, 支不支持移动端是一个纠结的问题,个人倾向于不支持移动端,还有的就都在代码里面了,具体大家可以在代码仓库查看或者留言,有更好的建议可以一起分享。
没有合适的资源?快使用搜索试试~ 我知道了~
Vue3和element-plus 搭建的一个admin系统.zip
共211个文件
css:110个
ts:28个
vue:14个
需积分: 0 0 下载量 77 浏览量
2024-01-03
09:13:40
上传
评论
收藏 3.24MB ZIP 举报
温馨提示
Vue3,springboot,element-ui使用技巧,实战应用开发小系统参考资料,源码参考。测试代码可运行。 详细介绍了一些Qt框架的各种功能和模块,以及如何使用Qt进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够帮助你快速上手Qt并掌握其高级特性。
资源推荐
资源详情
资源评论
收起资源包目录
Vue3和element-plus 搭建的一个admin系统.zip (211个子文件)
.browserslistrc 30B
commit-msg 78B
index.css 319KB
app.e5a22d03.css 293KB
chunk-vendors.ed2b9fd4.css 269KB
el-col.css 32KB
el-date-picker.css 21KB
base.css 18KB
el-tabs.css 14KB
el-icon.css 12KB
el-button.css 12KB
el-time-picker.css 12KB
el-time-select.css 11KB
el-upload.css 10KB
el-select-v2.css 10KB
el-table.css 9KB
el-menu.css 9KB
el-input.css 8KB
el-pagination.css 7KB
el-checkbox.css 6KB
el-tag.css 6KB
el-slider.css 6KB
el-color-picker.css 6KB
el-cascader.css 5KB
el-select.css 5KB
el-message-box.css 5KB
el-dropdown.css 4KB
el-tree.css 4KB
el-step.css 4KB
el-transfer.css 4KB
el-radio.css 4KB
el-collapse.css 4KB
el-input-number.css 4KB
el-tooltip.css 3KB
el-button-group.css 3KB
el-radio-button.css 3KB
el-link.css 3KB
el-var.css 3KB
el-carousel.css 3KB
el-checkbox-button.css 3KB
el-dialog.css 3KB
el-notification.css 3KB
el-alert.css 3KB
el-message.css 3KB
el-drawer.css 3KB
el-cascader-panel.css 3KB
el-form.css 2KB
el-switch.css 2KB
el-autocomplete.css 2KB
el-progress.css 2KB
el-descriptions.css 2KB
el-image-viewer.css 2KB
el-timeline-item.css 2KB
el-popper.css 2KB
el-loading.css 2KB
el-calendar.css 2KB
el-skeleton-item.css 1KB
el-table-column.css 1KB
el-scrollbar.css 1KB
el-result.css 1KB
el-option-item.css 1KB
el-avatar.css 1KB
el-badge.css 1KB
el-popover.css 1KB
el-reset.css 1KB
el-breadcrumb.css 1KB
display.css 982B
el-select-dropdown.css 978B
el-card.css 839B
el-rate.css 824B
el-carousel-item.css 813B
el-empty.css 802B
el-option.css 633B
el-option-group.css 631B
el-divider.css 614B
el-skeleton.css 611B
el-select-dropdown-v2.css 575B
el-backtop.css 532B
el-image.css 529B
el-page-header.css 519B
el-spinner.css 494B
el-check-tag.css 472B
el-row.css 385B
el-timeline.css 290B
el-descriptions-item.css 248B
el-steps.css 184B
el-overlay.css 166B
el-footer.css 162B
el-header.css 162B
el-container.css 151B
el-popconfirm.css 140B
el-main.css 136B
el-aside.css 111B
el-space.css 72B
chunk-02318dec.373a5f58.css 55B
chunk-0e6338a0.27079ebb.css 52B
el-virtual-list.css 34B
el-affix.css 32B
el-checkbox-group.css 31B
el-radio-group.css 28B
共 211 条
- 1
- 2
- 3
资源评论
白话Learning
- 粉丝: 3173
- 资源: 2464
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功