总体原则:极简、极速、解耦主要适用范围:Vue单页项目+文件组织规范文件结构原则:文件少,层次浅,资源集中,相对独立,互不影响基本结构:.|_node_modules|_dist|_src|_assets//公共资源|_img//全局图片|-favicon.png|-common.js//全局通用js|-common.less//重置样式表+自定义全局样式|-mixin.less//全局less变量|-template.html//模板|_组件//组件|_toast|-index.vue|-index.less|-index.js//所有组件的集合|_pages//具体页面|_index//首页|-index.vue|-index.less|-good.png//本页面单独使用的少量图片|-img//以上使用的图片两个页面分别提取offprevent|-copy.jpg|_temp//template|-index.vue|-index.less|_router//routing|-index.js|_vuex//vuexplugin|-index.js|-应用程序。vue|-main.js说明:关于图片:直接在这个页面文件下面放少量(资源集中,相互独立),如果有两个以上的页面是通用的,就拉出来放在下面img文件夹(下层),assets下img主要放favicon.png、pwa等全局图片(低频资源放远一点,不分散注意力)assets目录:放全局资源,这样的资源辐射全球,更改频率低,将它们聚集在一起以更好地关注核心临时文件:否新建一个页面,直接复制,改文件名。文件名统一使用小写字母,必要时可加破折号。页面文件名不宜太长。里面的文件都是以index,index.vue,index.less为前缀的父子组件命名方式:|_button-group//组件组合|_button//组件|_cell//父组件|_cell-item//子组件JS规范借助Eslint和编辑器代码的JS编写格式格式化功能保证了代码格式的统一。Eslint使用JavaScript标准代码规范。JS名称都是单引号,统一驼峰命名。尽量在大写开头保留语义类名。合理使用复数、缩写、简称。在保持精炼的CSS规范规则的同时写更多评论:全部用双引号引起来,小写。每个页面的css名称以文件外层文件夹名称加_index开头(所以文件夹名称开头不要太长),统一使用下划线辅助_例如:.about_index{.tit{font-尺寸:18px;}.nav{底边距:20PX;}}原因:下划线方便选择和复制,js中不允许使用破折号。不再重复。使用文件名作为该页面类名的开头,可以保证不会出现重复,然后该类名下的命名可以与其他页面重复。依靠层级限制,类名可以复用,大大减轻了样式命名的负担。工作负载HTML规范增强语义:尽量使用h5新tag标签嵌套规则,防止出现怪异错误:ul、olnestli、dlnestdt、dd、p、dt、h标签不嵌套块元素,a标签不能嵌套a,并且内联元素不能嵌套块元素注意SEO优化:img,a,strong,em,h1-h3格式化标签:span,em,strong格式化成非语义标签,i统一用于图标使用双引号,小写性能优化,提交代码前检查图片。您必须添加一个图标;需要下载的图片使用img标签实现,不需要下载的图片使用CSS背景图片实现;80),然后使用PPDuck图片压缩工具进行无损压缩;尽量使用jpg图片,移动端大图不要超过50kb;在移动端使用2x图片;避免空src和href;如果a标签href为空,则统一使用"javascript:;"而不是"void(0)"border-radius:2px值不能是单数,最小为2px定位元素垂直居中top值一般写成45%,50%好像低于合理的鼠标光标throttling防抖类型转换,非空判断异步请求空白处理机制,如loading统一错误返回处理机制微信分享标题敏感词,红包,钱...app回滚跳转是否正确iOS,android适配需要考虑320~750320480640iphoneX等,扩大点击区域优化速度。第一页打开请求接口不要超过3个,请求过多需要整合控制域名数量。每个页面一般有3个请求域名,一个主域名和一个静态资源域名,一个埋点分析域名(存在资源并行下载限制的问题)来综合衡量css和js的请求数和包大小,如果超过150kb,考虑拆分后端接口缓存静态资源,部署到CDN启用zip压缩
