专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
OSC开源社区  ·  RAG市场的2024:随需而变,从狂热到理性 ·  21 小时前  
OSC开源社区  ·  2024: 大模型背景下知识图谱的理性回归 ·  3 天前  
程序猿  ·  “我真的受够了Ubuntu!” ·  3 天前  
程序员的那些事  ·  惊!小偷“零元购”后竟向 DeepSeek ... ·  3 天前  
51好读  ›  专栏  ›  SegmentFault思否

前端小团队建设

SegmentFault思否  · 公众号  · 程序员  · 2018-09-27 08:00

正文

一、命名规则(英文-直译)

1、文件命名

文件夹/文件的命名统一用小写。

保证项目有良好的可移植性,可跨平台。相关参考:http://www.ruanyifeng.com/blog/2017/02/filename-should-be-lowercase.html。

2、文件引用路径

因为文件命名统一小写,引用也需要注意大小写问题。

3、js变量

3.1 变量

  • 命名方式:小驼峰

  • 命名规范:前缀名词

  • 命名建议:语义化

案例:

  1. // 友好

  2. let maxCount = 10;

  3. let tableTitle = 'LoginTable';

  4. // 不友好

  5. let setCount = 10;

  6. let getTitle = 'LoginTable';

3.2 常量

  • 命名方式:全部大写

  • 命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词

  • 命名建议:语义化

案例:

  1. const MAX_COUNT = 10;

  2. const URL = 'http://www.foreverz.com';

3.3 函数

  • 命名方式:小驼峰式命名法。

  • 命名规范:前缀应当为动词。

  • 命名建议:语义化

可以参考如下的动作:

动词 含义 返回值
can 判断是否可执行某个动作(权限) 函数返回一个布尔值。true:可执行;false:不可执行
has 判断是否含有某个值 函数返回一个布尔值。true:含有此值;false:不含有此值
is 判断是否为某个值 函数返回一个布尔值。true:为某个值;false:不为某个值
get 获取某个值 函数返回一个非布尔值
set 设置某个值 无返回值、返回是否设置成功或者返回链式对象
load 加载某些数据 无返回值或者返回是否加载完成的结果

案例:

  1. // 是否可阅读

  2. function canRead(): boolean {

  3.  return true;

  4. }

  5. // 获取名称

  6. function getName(): string {

  7.  return this.name;

  8. }

3.4 类、构造函数

  • 命名方式:大驼峰式命名法,首字母大写

  • 命名规范:前缀为名称。

  • 命名建议:语义化

案例:

  1. class Person {

  2.  public name: string;

  3.  constructor(name) {

  4.    this.name = name;

  5.  }

  6. }

  7. const person = new Person('mevyn');

公共属性和方法:跟变量和函数的命名一样。

私有属性和方法:前缀为 _ (下划线),后面跟公共属性和方法一样的命名方式。

案例:

  1. class Person {

  2.  private _name: string;

  3.  constructor() { }

  4.  // 公共方法

  5.  getName() {

  6.    return this._name ;

  7.  }

  8.  // 公共方法

  9.  setName(name) {

  10.    this._name = name;

  11.  }

  12. }

  13. const person = new Person();

  14. person.setName('mervyn');

  15. person.getName(); // ->mervyn

3.5 css(class、id)命名规则BEM

我们还是使用大团队比较常用的BEM模式。

(1) class 命名使用BEM其实是块( block )、元素( element )、修饰符( modifier )的缩写,利用不同的区块,功能以及样式来给元素命名。这三个部分使用__与--连接(这里用两个而不是一个是为了留下用于块儿的命名)。

命名约定的模式如下:

  1.    .block{}

  2.    .block__element{}

  3.     .block--modifier{}

  • block 代表了更高级别的抽象或组件。

  • block__element 代表 block 的后代,用于形成一个完整的 block 的整体

  • block--modifier代表 block 的不同状态或不同版本

(2) id 一般参与样式,命名的话使用驼峰,如果是给js调用钩子就需要设置为 js_xxxx 的方式。

二、注释

1、单行注释
  1. // 这个函数的执行条件,执行结果大概说明

  2. dosomthing()

2、多行注释
  1. /*

  2. * xxxx  描述较多的时候可以使用多行注释

  3. * xxxx

  4. */

  5. dosomthing();

3、函数(方法)注释
注释名 语法 含义 示例
@param @param 参数名 {参数类型} 描述信息 描述参数的信息 @param name {String} 传入名称
@return @return {返回类型} 描述信息 描述返回值的信息 @return {Boolean} true:可执行;false:不可执行
@author @author 作者信息 [附属信息:如邮箱、日期] 描述此函数作者的信息 @author 张三 2015/07/21
@version @version XX.XX.XX 描述此函数的版本号 @version 1.0.3
@example @example 示例代码 演示函数的使用 @example setTitle(‘测试’)

三、组件

每个 Vue 组件的代码建议不要超出 200 行,如果超出建议拆分组件。

组件一般情况下是可以拆成基础/ui部分和业务部分,基础组件一般是承载呈现,基础功能,不和业务耦合部分。

业务组件一般包含业务功能业务特殊数据等等。

1、UI组件/基础组件

开发的时候注意可拓展性,支持数据传参进行渲染,支持插槽slot。

设置有mixin,mixin中放了基础信息和方法。

2、容器组件

和当前业务耦合性比较高,由多个基础组件组成,可承载当前页的业务接口请求和数据(vuex)。

3、组件存放位置

(1)ui组件存放在 src / components / 中,包含 xxx . vue xxmixin







请到「今天看啥」查看全文