规范说明 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. 项目结构与规范说明
  2. 一、目录结构说明
  3. src
  4. assets 静态资源(图片、字体等)
  5. common 项目全局公共函数封装
  6. components 全部组件
  7. common 通用组件,不带有任何业务数据,只带有通用样式或特定样式以及事件;以文件夹的形式隔开,如果存在资源则建立子目录存放
  8. modules 业务组件,带有通用业务数据;
  9. config 全局配置
  10. directives 全局指令 按文件名划分
  11. filters 全局筛选指令
  12. pages 页面容器
  13. login 路由为/home的页面,该页面如果涉及子页面,则创建children目录进行存放,多级递归。注意这里多级时路由配置也需要多级配置
  14. children
  15. child.vue
  16. index.vue
  17. plugins js第三方插件
  18. router 路由配置
  19. map 各个页面对应的路由配置,注意:这里是按页面来配置
  20. server 前端领域业务封装,文件名按领域来区分;测试用例针对领域来编写流程
  21. testData 按领域来存放测试数据
  22. store vuex 模块
  23. modules 细分各个模块
  24. index vuex入口
  25. style 全局样式
  26. common.less 全局公共样式
  27. root.less 全局less变量
  28. tests
  29. e2e 端到端测试
  30. unit 单元测试
  31. vue.config.js 工程基本配置文件-端口、编译输出目录...
  32. 三、js规范
  33. 变量
  34. 1.当前作用域顶端定义
  35. 2.var禁用 在块级作用域下使用let
  36. 3.在全局作用域下,函数及变量使用const定义
  37. 4.字符串统一使用单引号,标签或者属性的值采用双引号
  38. 函数
  39. 1.that=this; 函数内部存在嵌套函数时,必须在最外层定义this指向
  40. 2.内部私有方法写在return之后
  41. 3.判断是否相等用全等号
  42. 1.定义顺序:变量、公开方法、私有方法
  43. 模块
  44. 1.export default 写到最底部
  45. 2.export 变量写在一起靠底部位置
  46. 命名
  47. 1.变量、函数、vue组件名称 小写开头 驼峰规则
  48. 2.私有加前缀(下划线)
  49. 3.类命名 大写开始 驼峰规则
  50. 4.资源文件全部用小写命名(包括文件夹),如backbtn.png、 province_city.json
  51. 四、css规范
  52. 每个style标签必去加上scoped
  53. 样式规则:
  54. .classname{
  55. //定位规则
  56. //盒子属性
  57. //其它
  58. }
  59. classname:命名规则 小写;多个单词-(中划线)分格
  60. 层级样式减少标签直接使用方式;
  61. 层级定义样式规则:
  62. .父级
  63. .父级-子级
  64. .父级-子级-子级
  65. class相隔必须用-(中划线)
  66. id相隔必须用_(下划线)
  67. 样式封装块,重复样式定义继承处理
  68. .commonclassname
  69. .classname {
  70. //定位规则
  71. //盒子属性
  72. //其它
  73. &:伪类 {
  74. }
  75. // 嵌套层级
  76. .classname {
  77. }
  78. .classname {
  79. }
  80. }
  81. 五、路由规范
  82. 根据页面来制定路由区域
  83. 六、Vue文件规范
  84. <template>
  85. // v-on => @
  86. // v-bind => :
  87. </template>
  88. <script>
  89. // 模块引入
  90. // 对象接口
  91. export default {
  92. props:{
  93. // 父级传入属性
  94. },
  95. data(){
  96. return {
  97. 组件相关初始化数据定义
  98. }
  99. },
  100. created(){
  101. // 异步装载初始化数据
  102. this.methodC();
  103. },
  104. components:{
  105. // 引用的组件
  106. },
  107. methods:{
  108. // 一些数据交互的问题
  109. methodA() {
  110. },
  111. methodB() {
  112. },
  113. async methodC() {
  114. }
  115. },
  116. computed:{
  117. // 需要属性计算的操作
  118. },
  119. watch:{
  120. // 检控属性变化
  121. }
  122. }
  123. </script>
  124. <style lang="less" scoped>
  125. </style>