融易行前端
头号交易前端架构
整体使用vue-cli3构建
框架选用vue全家桶 + sass + element-ui
代码规范强制要求使用 eslint-airbnb 规范
项目分为架构层,业务层和视图层:
- 架构层需要处理请求封装,请求中断,异常处理,公用函数封装,全局sass变量,登陆状态判断,权限的路由拦截等。
业务层对应BFF层,包括数据存储和视图层所需要的数据的返回处理,前期也负责mock数据的返回。(未应用)
视图层分为3部分,组件部分:
- 凡是超过1次复用的都需要抽成组件。
- sass公用部分。
- 禁止在App.vue文件进行ui框架的全局样式覆盖。
视图层布局部分:
- 公用header,nav,footer部分相应的逻辑应在该部分处理。
- 全局小工具也应在该部分处理。
视图层具体页面:
- 对应高保真。
- 多tab的情况需用文件夹包裹整页内容。
airbnb详解 前端开发规范
基于开发习惯, 为以下几点做了处理
rules: { 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-multiple-empty-lines': [1, { max: 2 }], // 空行最多不能超过2行 'no-plusplus': 'off', // 一元运算符 'guard-for-in': 'off', // 遍历 'no-prototype-builtins': 'off', // 从实例对象调用方法 'no-restricted-syntax': 'off', 'no-param-reassign': 'off', // 重新分配 'class-methods-use-this': 'off' }
目录结构
┌─public │ ├─favicon.ico │ └─index.html ├─src │ ├─assets │ │ ├─img // 图片 │ ├─components │ │ ├─common // 公用组件(例: 步骤条/票据详情等) │ │ ├─containers // 外层容器(例: 前台容器Home, 后台容器Backstage) │ │ ├─layout // 布局组件(例: 前台header, 前台footer) │ │ ├─views // 页面 (下方是例子) │ │ │ │ ├─BuyerOrder // 买方订单 │ │ │ │ │ ├─common // 组件调用的公用组件 │ │ │ │ │ │ ├─filter.vue // 筛选条件组件 │ │ │ │ │ ├─component // 买方订单用到的组件 │ │ │ │ │ │ ├─BuyerOrderListAll.vue │ │ │ │ │ │ ├─BuyerOrderListFail.vue │ │ │ │ │ │ ├─BuyerOrderListNotSigned.vue │ │ │ │ │ │ ├─BuyerOrderListPlatformProcessing.vue │ │ │ │ │ │ ├─BuyerOrderListSuccess.vue │ │ │ │ │ │ ├─BuyerOrderListUnpaid.vue │ │ │ │ │ │ └─BuyerOrderListUnreviewed.vue │ │ │ │ │ └─BuyerOrderList.vue // 买方订单对外展示的页面, 需注册到路由 │ ├─httpConfig // 请求封装 │ │ └─http.js │ ├─style // 样式 │ │ ├─base.scss // css重置样式 │ │ ├─common.scss // 公用样式 │ │ ├─element-variables.scss // 修改主题 │ │ └─project.scss // 项目公用样式 │ ├─utils // 函数库 │ │ ├─calc.js // 计算函数(包括金额格式化, 精准计算等) │ │ ├─city.js // 省市区json │ │ ├─cookie.js // cookie封装 │ │ ├─platform.js // 项目用的公用函数(瑕疵跳转等) │ │ └─secret.js // 加解密函数封装 │ ├─App.vue │ ├─main.js // 入口文件, 权限判断, 常用方法挂载 │ ├─router.js // router │ └─store.js // vuex(只做公用处理, 比如个人信息存储, 公司地址等信息) ├─tests // 自动化测试 │ ├─unit │ │ ├─.eslintrc.js │ │ └─example.spec.js ├─.browserslistrc ├─.editorconfig ├─.eslintrc.js // eslint配置文件 ├─.gitignore // git忽略目录 ├─.prettierrc.json // 代码格式化配置 ├─babel.config.js ├─jest.config.js ├─package-lock.json ├─package.json ├─postcss.config.js ├─README.md └─vue.config.js // 项目配置, webpack配置
相关推荐
liduote 2020-11-13
lxhuang 2020-11-03
小焊猪web前端 2020-10-24
南昌千网科技 2020-10-18
liduote 2020-10-16
Doniet 2020-10-08
PncLogon 2020-09-24
趣IT 2020-09-22
颤抖吧腿子 2020-09-04
liangjielaoshi 2020-08-19
viewerlin 2020-08-19
franktaoge 2020-08-15
SHINESUNNY 2020-08-11
架构技术交流 2020-07-28
jczwilliam 2020-08-16
xxuncle 2020-07-04
Noseparte 2020-06-28
bowean 2020-06-28
舍我其谁 2020-06-21