zoukankan      html  css  js  c++  java
  • 《Vue前端开发手册》

    序言

    为了统一前端的技术栈问题,技术开发二部规定开发技术必须以Vue为主。

    为了更好的规范公司的前端框架,现以我前端架构师为主,编写以下开发规范,如有不当的地方,欢迎批评教育并慢慢改善该开发文档,谢谢合作。

    我们在做产品不只是实现功能,还要考虑到以后的优化升级,那么就需要一套标准的代码规范,使得代码易懂,养成代码规范的习惯,有助于程序员自身的成长。那么我们现在就来谈谈,前端代码的规范。

    一、编码规范

    1、样式文件命名说明

    注:css处理程序统一使用stylus,并放在“src/common/stylus”目录下

    1重置样式:reset.stylus

    2基础布局样式:base.stylus

    3公共样式:public.stylus

    4变量样式:variable.stylus

    5icon样式:icon.stylus

    6混合类型(函数样式)mixin.stylus

    2样式规范化

    1)连字符CSS选择器命名规范

    长名称或词组可以使用中横线来为选择器命名。 不建议使用“_”下划线来命名CSS选择器,例:class=”page page-index”

    (2)使用16进制表示颜色值,除非表示的是透明度例:#F62AB5

    3)以下常用的css命名规则

    page-hd、page-bd、page-ft、tit、cnt、desc、info、left-bar、search-bar

     

    3文件目录

    1)存放其它图片文件夹命名规范:imgaes

    2)存放广告图的文件夹banner

    3)文件名应该全部小写,多个单词以下划线“_”分开

    4JS文件:驼峰命名方式,首字母小写,例:getUserInfo.js

    5)确保文档或模板中只包含html,把用到的样式都写到样式表文件中,把脚本都写到js文件中采用外链引入形式,使页面的结构与行为分离

    4、 Javascript

    1)因vue脚手架有自动编译的功能,为了代码的整洁,每行js代码不必“;”作为结束,但需遵循一个语句一行的编码方式;

    5命名规范

    1件命名:以英文命名,后缀为.js(共用)common.js,其他命名可根据模块需求命名

    2变量命名:驼峰式命名,原生JavaScript变量要求是纯英文字母, 首字母须小写,变量集中声明, 避免全局变量
    3类命名:首字母大写, 驼峰式命名egStudentInfoUserInfoProductInfo

    4函数命名首字母小写驼峰式命名eggetUserInfo

    5命名语义化,尽可能利用英文单词或其缩写

    6常量:必须采用全大写的命名,且单词以_分割,常量通常用于ajax请求url,和一些不会改变的数据

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

    例:const MAX_LENGTH = 20;const URL = 'http://www.star.com'

    7变量:必须采用小驼峰式命名法例:let maxCount = 10;

    6项目命名

    全部采用小写方式, 以下划线分隔。例:my_project_name

     

    7、函数

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

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

    命名建议:可使用常见动词约定

    动词

    含义

    返回值

    can

    判断是否可执行某个动作(权限)

    函数返回一个布尔值。true:可执行;false:不可执行

    has

    判断是否含有某个值

    函数返回一个布尔值。true:含有此值;false:不含有此值

    is

    判断是否为某个值

    函数返回一个布尔值。true:为某个值;false:不为某个值

    get

    获取某个值

    函数返回一个非布尔值

    set

    设置某个值

    无返回值、返回是否设置成功或者返回链式对象

    load

    加载某些数据

    无返回值或者返回是否加载完成的结果

    8、类 & 构造函数

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

    命名规范:前缀为名称。

    示例:

    class Person {

      public name: string;

      constructor(name) {

        this.name = name;

      }

    }

    const person = new Person('mevyn');

    9、类的成员

    类的成员包含:

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

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

    示例:

    class Person {

      private _name: string;

      constructor() { }

      // 公共方法

      getName() {

        return this._name;

      }

      // 公共方法

      setName(name) {

        this._name = name;

      }

    }

    const person = new Person();

    person.setName('star');

    person.getName(); // ->'star'

    10注释规范

    js 支持三种不同类型的注释:行内注释、单行注释和多行注释:

    1. 行内注释
    • 说明:行内注释以两个斜线开始,以行尾结束。
    • 语法:code // 这是行内注释
    • 使用方式://(双斜线)与代码之间保留一个空格,并且//(双斜线)与注释文字之间保留一个空格。

    命名建议:

    // 用来显示一个解释的评论
    // -> 用来显示表达式的结果,
    // >用来显示 console 的输出结果,

    示例:

    function test() { // 测试函数

      console.log('Hello World!'); // >Hello World!

      return 3 + 2; // ->5

    }

    1. 单行注释
    • 说明:单行注释以两个斜线开始,以行尾结束。
    • 语法:// 这是单行注释
    • 使用方式:单独一行://(双斜线)与注释文字之间保留一个空格。

    示例:

    // 调用了一个函数;1)单独在一行setTitle();

    1. 多行注释
    • 说明:以 /* 开头, */ 结尾
    • 语法:/* 注释说明 */
    • 使用方法:若开始/和结束/都在一行,推荐采用单行注释。若至少三行注释时,第一行为/,最后行为/,其他行以开始,并且注释文字与保留一个空格。

    示例:

    /** 代码执行到这里后会调用setTitle()函数* setTitle():设置title的值

    */

    setTitle();

    1. 函数(方法)注释

    说明:函数(方法)注释也是多行注释的一种,但是包含了特殊的注释要求,参照JSDoc

    语法:

    /** * 函数说明 * @关键字

    */

    常用注释关键字:(只列出一部分,并不是全部)

    注释名

    语法

    含义

    示例

    @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(‘测试’)

    /*** 合并Grid的行

    * @param grid {Ext.Grid.Panel} 需要合并的Grid

    * @param cols {Array} 需要合并列的Index(序号)数组;从0开始计数,序号也包含。

    * @param isAllSome {Boolean} :是否2trcols必须完成一样才能进行合并。true:完成一样;false(默认):不完全一样

    * @return void

    * @author polk6 2015/07/21

    * @example

    * _________________                             _________________

    * |  年龄 |  姓名 |                             |  年龄 |  姓名 |

    * -----------------      mergeCells(grid,[0])   -----------------

    * |  18   |  张三 |              =>             |       |  张三 |

    * -----------------                             -  18   ---------

    * |  18   |  王五 |                             |       |  王五 |

    * -----------------                             -----------------

    */

    function mergeCells(grid: Ext.Grid.Panel, cols: Number[], isAllSome: boolean = false) {

      // Do Something

    }

    11、手机设计稿规范

    设计稿的宽度一般情况下为宽度750px,在手机端页面编写的过程,将页面的最大宽度设置为750px,最小宽度为375xp,宽度为100%;即min-375pxmax-750pxwidth100%;这样一来的话宽度在375750之间是自适应的,当页面小于375时出现水平滚动条,当页面大于750时页面居中布局

     

     

    二、vue框架推荐

    小程序:mpvue框架

    H5游戏:vue

    H5UI框架:vux

    推广类seo优化,如新闻,博客:nuxt.js

    UIelement

    APPweexFlutter

    开发环境版本建议

    技术

    版本

    查看命令

    node

    8.12.0

    node-v

    vue  

    2.5.17

    vue -V(大写)

    npm

    6.4.1

    npm -v

    webpack

    4.19.1

    webpack -v

    nuxt

    2.00

    /

    Element-ui

    2.47

    /

     

       

  • 相关阅读:
    第四周:卷积神经网络 part3
    第四周作业:卷积神经网络学习part3
    视频学习--《 图像语义分割前沿进展》
    视频学习--《语义分割中的自注意力机制和低秩重建》
    第二次作业:卷积神经网络 part 1
    使用VGG模型迁移学习进行猫狗大战
    使用 VGG16 对 CIFAR10 分类
    CIFAR10 数据集分类
    MNIST数据集分类
    第一次作业:深度学习基础
  • 原文地址:https://www.cnblogs.com/zhoudawei/p/10528841.html
Copyright © 2011-2022 走看看