美文网首页
来给regular组件写注释吧

来给regular组件写注释吧

作者: 小人阳 | 来源:发表于2017-10-23 15:04 被阅读0次

在基本完全组件化的前端工程中,调用组件就像调用函数一样常见:

  • 调用函数时,我们传入参数,得到计算结果;
  • 调用组件时,我们传入数据,得到渲染视图;

不同的是,函数的参数通常只有1-5个左右,清晰的罗列在函数的定义过程中,而组件的数据,常常多达数十个,掺杂在html视图和js的逻辑中。

在这种情况下,调用某个组件的时候,工作过程是这样的:

  1. 组件作者提供了示例代码:
    • 从示例中找到引用组件的代码,得到需要传给组件的数据
    • 如果数据是对象结构,从js中梳理出对象的属性
  2. 组件作者没有提供示例代码:)
    • 从html中找到所有视图数据
    • 从js中梳理出视图数据的来龙去脉,得到传入的数据

梳理过程的复杂度和组件的复杂度呈现正相关,难度和组件涉及的业务难度呈现正相关。总的来说,梳理是最耗时、最折磨人的。

怎样才能提高梳理过程的效率呢?

想起曾经有同事调用我的组件的时候,提出了给组件写示例代码的要求,现在想起来,他应该也饱受梳理的折磨。现在的我,经历了一番题库的折磨后,恍然大悟:

注释,就能有效的提高梳理效率。但是,年轻的少年猿啊,你真的会写注释吗?

写注释,本质上是一件比Hello,World更简单的事情(斜杠+*号,谁还不会呢

关于注释,

有人信奉注释越少越好,命名良好的变量就是天然的最佳注释。
有些人很喜欢写注释,一个文件中的注释足以构成一道阅读理解题。

而有些人从不写注释:

对于函数而言,通常能做到职责单一,职责单一保证了参数较少,配合命名良好的变量,确实能做到不需要注释,下面的函数,基本上一看就能知道它的功能以及调用方法。

arabicToChineseFilter = function (arabicNumber) {
    var BIG_QUESTION_ORDER_NUMBER = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九'],
    UNIT = ['', '千', '百', '十', ''],

    chineseNumber = String(arabicNumber)
        .split("")
        .reduceRight(function (pre, cur, idx) {
            return (cur ? BIG_QUESTION_ORDER_NUMBER[Number(cur)] + UNIT[idx] : '') + pre;
        }, '');

    return chineseNumber;
};

所以,函数的注释相对少见,也并不影响使用,但组件:

  1. 所需数据能够多达数十个
  2. 在组件的声明处,通常不会有所需参数的定义,即使有,也不清晰(regular对此没有约束)

不过,函数的注释标准,借鉴到组件中来,效果却是很不错:

/**
 * knowledge组件
 * 
 * @param {Object} resource
 * @param {String} [resource.comment=''] 自定义评论
 * 
 * @param {Object[]} knowledgeLogicPoints 题目关联知识点
 * @param {String} knowledgeLogicPoints[].name 知识点的名称
 * 
 * @param {Object[]} [microCourseVideo=[]] 本次答题关联的微课视频
 * @param {String} microCourseVideo[].name 微课视频的名称
 * @param {Number} microCourseVideo[].id 微课视频的id
 */

从上面的注释中,可以立刻得到组件所需的数据结构:

setting: {
  isDisabled
}
question: {
   questionSocore:
   subjectiveQuestionContent: {
        stdAnswer: []
  }
}

注释的标准格式文档

相关文章

  • 来给regular组件写注释吧

    在基本完全组件化的前端工程中,调用组件就像调用函数一样常见: 调用函数时,我们传入参数,得到计算结果; 调用组件时...

  • vue2.x的电商图片放大镜

    懒得写注释了 直接拿去用吧这个组件只需要传4个值就能直接用了

  • jmeter正则表达式的用法

    在需要提取参数的请求下方添加regular Expression Extractor组件。 组件设置: 选择需要提...

  • 组件:子传父 对话框小练习

    把子组件中的数据传递到父组件中例: 注释:点击按钮时,就会弹出父组件传给子组件的数据 练习1: 注释:可以把子组件...

  • 组件:子传父 对话框小练习

    把子组件中的数据传递到父组件中例: 注释:点击按钮时,就会弹出父组件传给子组件的数据 练习1: 注释:可以把子组件...

  • iOS CAShapeLayer+CADisplayLink 波

    代码就懒得写注释了、自己去研究吧。。。

  • react基础语法

    一、注释在js写xml就是jsx语法 二、插值 三、节点属性 四、列表渲染 五、事件处理 六、无状态组件 七、函数式组件

  • Regular进阶: 跨组件通信

    本文由作者郑海波授权网易云社区发布。 背景 在组件化不断深入的大环境下,无论使用哪种 MDV 框架都最终会遇到一个...

  • Regular进阶: 跨组件通信

    本文由作者郑海波授权网易云社区发布。 背景 在组件化不断深入的大环境下,无论使用哪种 MDV 框架都最终会遇到一个...

  • 2019-05-31

    注释规范非常影响自身和别人的编程体验,不管别人怎样吧,自己写的遵守以下规范: 1、文件注释a.注释开始 /* 不可...

网友评论

      本文标题:来给regular组件写注释吧

      本文链接:https://www.haomeiwen.com/subject/lzqpuxtx.html