# 旅游出行(Vue+Vant)
**Repository Path**: zhang_da_bin/travel
## Basic Information
- **Project Name**: 旅游出行(Vue+Vant)
- **Description**: 此项目是一款旅游出行的WebApp(H5), 前端框架:vue.js 2.x、vant2.x。
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2023-03-01
- **Last Updated**: 2023-03-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[TOC]
# 一、项目说明
1. 项目描述:【travel 旅游出行】是一款旅游出行类的 WebApp(H5)
2. 仓库地址:https://gitee.com/mrthinco/travel
3. 代码说明:
- develop 分支为:开发分支,master 分支为:正式分支
- 此项目为纯前端项目,不含后端、数据库等(方便本地运行、学习、复用)
4. 技术框架:前端:Vue2.x、Vant2.x、Axios、Sass...
5. 项目展示:
# 二、目录说明
## 2.1 项目目录
├── build // 构建相关
├── bin // 执行脚本
├── public // 公共文件
│ ├── favicon.ico // favicon图标
│ └── index.html // html模板
│ └── robots.txt // 反爬虫
├── src // 源代码
│ ├── api // 所有请求
│ ├── assets // 主题 字体等静态资源
│ ├── components // 全局公用组件
│ ├── directive // 全局指令
│ ├── layout // 布局
│ ├── router // 路由
│ ├── store // 全局 store管理
│ ├── utils // 全局公用方法
│ ├── views // view
│ ├── App.vue // 入口页面
│ ├── main.js // 入口 加载组件 初始化等
│ ├── permission.js // 权限管理
│ └── settings.js // 系统配置
├── .editorconfig // 编码格式
├── .env.development // 开发环境配置
├── .env.production // 生产环境配置
├── .env.staging // 测试环境配置
├── .eslintignore // 忽略语法检查
├── .eslintrc.js // eslint 配置项
├── .gitignore // git 忽略项
├── babel.config.js // babel.config.js
├── package.json // package.json
└── vue.config.js // vue.config.js
## 2.2 页面模块
页面按照模块进行分类放置到`views`中,接口也按照模块放置到`api`中,且将项目中的模块整理归档到这里,方便快速查找:
1. user 用户模块
2. order 订单模块
3. analysis 统计模块
## 2.3 components 组件
1. 组件命名规范
- 组件名称:小驼峰,尽量语义化,如:userList
- 组件文件:组件名称/index.vue,一个组件对应一个文件夹,该文件夹下可以有多个类型的文件(如:js、img、css 等)。如:`userList/index.vue`
2. 组件存放规范
- 自定义公共复用组件存放为:`components/BaseForm/index.vue` ,这里存放自定义复用组件,方便大家开发和复用、共享。
- 自定义非公共组件存放到:`当前页/cpns`,因为有的页面组件,其他页面根部就不会复用到,只是为了让主页面代码简洁和便于维护,那么这些组件,应该直接放到当前页下的`cpns`文件夹中,独立维护。
3. 组件说明规范
每个自定义组件,组件用法、参数描述应该简单、清晰,在组件代码的`
```
## 2.4 assets 静态资源
1. `assets/font` 字体文件
2. `assets/icon` 图标文件
3. `assets/img` 图片文件
- 建议图片能够放后端或者云存储的尽量就别放前端,减少包体积和优化加载速度 。
- 图片如果是复用的图片,不属于某个页面独有的图片,直接放此目录。
- 图片如果属于某个功能模块独有的,需要建立一个和模块名称同名的文件夹,再存于文件夹下。如:`assets/img/user` 用户模块的图片。
4. `assets/style` 样式文件
- 样式文件夹下,统一在`index.scss`中导入所有样式,然后在`main.js`中统一导入。
- 按照 UI 设计稿,整理了一份基础样式库,放置于`@/assets/styles/base.scss`,里面包含基础主题颜色、基础样式,欢迎自取。
## 2.5 store vuex 缓存
我们采用分模块来管理各个 vuex 子模块,便于项目的维护和整合。
1. `index.js` 此文件是入口文件,方便整合和引入 vuex 模块
2. `modules/user.js` 此文件是用户信息相关 vuex 模块
# 三、命名规范
## 3.1 文件命名
`.vue/.css/.js` 文件命名采用小驼峰,尽量语义化,如:`userList.vue`
## 3.2 CSS 命名规范
- class、id 命名采用小写字母加中划线,尽量语义化,前缀是类型,后面是操作。如:提交按钮 `btn-submit`。
## 3.3 JS 命名规范
- js 函数命名采用小驼峰,尽量语义化,如:`parseStartTag`。
## 3.4 文件夹命名
- 在 views 中的文件夹,采用小驼峰
- 在 components 中的文件夹,采用大驼峰
- 其余文件夹,统一小驼峰
# 四、版本规范
- 版本名称:2.220815.1
- 版本号:22208151
- 从左往右数字命名说明:
- 第一位:2,表示当前大迭代版本号:2 版本
- 第二至七位:220815,表示当前的发版日期:22 年 08 月 15 日
- 第八位:1-9,表示本次上线版本的上架审核次数,默认为 1,重新上架一次递增 1,最高为 9
- 注意:版本号和版本名称是对应关系,版本名称用点号分割
# 五、代码规范
## 5.1 书写规范
EditorConfig + Prettier + ESLint
## 5.2 提交规范
项目中使用了`commitlint`,所以需要规范 `commit-msg`:
```
git commit -m (optional scope):
git commit -m "feat(): 新增debounce函数"
git commit -m "fix(server): send cors headers"
git commit -m "feat(blog): add comment section"
git commit -m "chore: run tests on travis ci"
- feat:新增功能
- fix:缺陷修复
- perf:性能优化
- refactor:重构代码(既没有新增功能,也没有修复 bug)
- style:不影响程序逻辑的代码修改(代码风格样式等,没有改变代码逻辑)
- docs:文档更新
- build:项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
- revert:回滚某个更早之前的提交
- chore:不属于以上类型的其他类型
optional scope:一个可选的修改范围。用于标识此次提交主要涉及到代码中哪个模块。
description:一句话描述此次提交的主要内容,做到言简意赅。
```
# 六、项目插件
1. normalize.css 规范浏览器样式
```js
npm install --save normalize.css
```
2. fastclick 解决移动端浏览器 300 毫秒点击延迟问题
```js
npm install fastclick --save
```
3. tailwindcss 样式库
```js
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
```
4. vant2.x UI 组件库
```js
npm i vant@latest-v2 -S
// 在编译过程中将 import 的写法自动转换为按需引入的方式
npm i babel-plugin-import -D
```
5. axios api 请求工具
```js
npm i axios --save
```
6. better-scroll 滚动组件
```js
npm i better-scroll --save
```