zoukankan      html  css  js  c++  java
  • 代码风格规范

    一、优先级a的规则:必要的(规避错误)

    1.组件名为多个单词:

      组件名应该始终是多个单词的,跟组件app以及<component>之类的vue内置组件除外,这样做可以避免跟现有的以及未来的html元素相冲突,因为所有的html元素都是当单词

      好例子:app.component("todo-item",{

    })

    2.prop定义:

    prop定义应尽量详细,在你提交的代码中,prop的定义应该尽量详细,至少需要指定其类型。

    反例:

    props:['status']

    好例子:

    props:{
    
    status:String
    
    
    }
    //更好的例子
    props:{
    
        status:{
    
        type:string,
        required:true,
        validator:value=>{
        return [
    "syncing","synved"
    ].includes(value)
    }
        
    }
    
    }

    3.为v-for设置key值

    总是用key配合v-for在组件上总是必须用key配合v-for,以便维护内部组件及其子树的状态。甚至在元素上维护可预测的行为。比如动画中的对象固化

    4.避免v-if和v-for一起使用

    永远不要把v-if和v-for同时用在同一个元素上。

    一般我们在两种情况下会倾向于这样做:

          为了过滤一个列表中的项目(比如 v-for="user in users" v-if="user.isActive").在这种情况下,请将users替换成为一个计算属性(比如 activeUsers),让其返回过滤后的列表。

      为了避免渲染本改被隐藏的列表(比如 v-for="user in users"  v-if="shouldShiwUsers").这种情况下请将v-if移动至容器元素上<ul v-if="shouldShowUsers">

    5.为组件样式设置作用域

        对于应用来说,顶级app组件和布局组件的样式可以是全局的,但是其他所有组件都应该是有作用域的。

        这条规则之和单文件组件有关,你不一定要使用scoped。使用作用域也可以通过cssModules,那是一个基于class的类似bem的策略

        不管怎样,对于组件库,我们应该更倾向于选用基于class的策略而不是scopd。这让腹泻内部样式更容易:使用了人类可理解的class名称且没有太高的选择器优先级,而且不太会导致冲突

        好的例子:

        

    <!-- 使用 `scoped` attribute -->
    <style scoped>
    <!-- 使用 CSS modules -->
    <style module>
    <template>
      <button class="c-Button c-Button--close">×</button>
    </template>
    
    <!-- 使用 BEM 约定 -->
    <style>
    .c-Button {
      border: none;
      border-radius: 2px;
    }
    
    .c-Button--close {
      background-color: red;
    }
    </style

    6.私有property名称

       使用模块作用域保持不允许外部访问的函数的私用行。如果无法做到这一点,就始终为插件,混入等不考虑作为对外公共api的自定义私有property前缀。并附带一个命名空间一回避和其他作者的冲突

    二、优先级b的规则:强烈推荐(增强代码的可读性)

    1、组件文件:只要有能够拼接文件的构建系统就把每个组件单独分成文件。

        当你需要编辑一个组件或查询一个组件的用法时,可以快速的找到他

    2.单文件组件文件的大小写

       单文件组件的文件名应该要么时单词大写开头(PascalCase),要么始终时横线链接(kebab-case)。

    3.基础组件名称

        应用特定样式和约定的基础组件(也就是展示的、无逻辑的或者无状态的组件)应该全部以一个特顶的前缀开头,比如base、app、v



     

     
     
    勤学似春起之苗,不见其增,日有所长; 辍学如磨刀之石,不见其损,日所有亏!
  • 相关阅读:
    redis中save和bgsave区别
    go语言标准库
    numpy 学习:数组改变形状、副本和view
    Python 开始:变量、操作符、print()和type()
    numpy 学习:数据类型和空值
    Python 数据类型:布尔类型和None
    numpy 学习:数组的拼接、堆叠和拆分
    numpy 学习:数组的查找
    Databricks 第12篇:Notebook 工作流
    numpy 学习:通用函数(包含数学函数)
  • 原文地址:https://www.cnblogs.com/qiaozhiming123/p/15784440.html
Copyright © 2011-2022 走看看