Standard 0.10.1+

规范

vue中

  • Vue 组件细则

  • 尽可能用组件自定义事件 如el-select @change代替vue watch

  • 事件命名可参考 Element-uinode_modules\element-ui\packages\table\src\table-header.js:110

  • 善于利用vuex的dispath进行预加载,比如用户登陆时可以加载主页的静态资源

  • 列表相关的CRUD解耦,新增,修改,删除操作完后不要去getList,仅在前端实现状态更新

  • 前端请求防止高并发的loading相关,比如按钮的高频点击,可以写个全局mixin,待ajax结束把loading关掉,推荐使用promise.finally(),记得使用polyfill

  • vue中善于利用Destructuring

  • 更多🚀

项目示例汇总

  • 为了使用函数参数重载,可以不遵循airbnb7.7

  • 箭头函数 {}return 省略,可尽量省略return和花括号,使用vscode格式化工具prettier自动换行处理

  • 项目暂不使用Class,推荐模块组合方式

  • 模块export export { zip, flatten, camelCase, sumBy } from 'lodash' 生产后的lodash会打包多余模块,尽量让importexport各司其职

  • 代码块,空白,逗号 使用vscode格式化工具prettier自动换行处理

  • 不使用分号,遇到两个 IIFE 合并时手动加

  • StringNumber类型转换 '3'直接使用+'3'转换

  • 文件命名规则 nuxt项目中pages使用下划线 _ ,components组件使用驼峰camelCase,其他文件使用-连接符

  • 项目尽可能不使用jQuery,使用 $ 作为存储 vue $refs DOM 节点对象的变量名前缀

  • vuetify源码中有大量的vue unwatch

    //node_modules\vuetify\src\mixins\validatable.js
    beforeDestroy () {
      this.form && this.form.unregister(this)
    }
    
  • 页面表格多且功能繁琐,尽量使用vue-data-tables

  • 不同页面,相同class类名麾下的css,浏览器不会继续加载第二次,除非刷新页面,写style不加scoped时要特别注意,比如登陆页和注册页共用一个div时,尽量使用OOCSS方案,使用bootstrap的多className写法.

性能

相关资源

了解 ES6

看看这个

工具

其他风格指南

拓展阅读

上次更新: 9/4/2018, 6:17:29 AM