【前端学习记录】Vue前端规范整理

文章目录

    • 前言
    • 一、文件及文件夹命名
    • 二、钩子顺序
    • 三、注释规范
    • 四、组件封装
    • 五、CSS编码规范
    • 六、JS编码规范

前言

优秀的项目源码,即使是多人开发,看代码也如一人之手。统一的编码规范,可使代码更易于阅读,易于理解,易于维护。

一、文件及文件夹命名

  • 不能使用中文、数字(需要数字是用英文first、second字符代替)
  • 文件名使用全小写
  • vue、css、js、jpg等图片格式多单词文件名使用中划线-代替
    -eg: big-mom.jpg

二、钩子顺序

name
components
mixins
props
data
computed
filters
watch
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeDestroyed
destroyed
errorCaptured
methods

三、注释规范

为组件中每一个方法编写方法说明,以下情况,务必添加注释

  • 1、公共组件使用说明
  • 2、各组件中重要函数或者类说明
  • 3、复杂的业务逻辑处理说明
  • 4、特殊情况的代码处理说明,对于代码中特殊用途的变量、存在临界值、函数中使用的hack、使用了某种算法或思路等需要进行注释描述

四、组件封装

代码可封装时,要及时封装组件,尽量避免一个index文件出现超过1000行;

五、CSS编码规范

  • 1、选择器命名
    全英文小写(尽量不要用中文拼音命名)
    使用中划线分割多单词的选择器名
    禁止使用下划线(修改element自带样式除外)

  • 2、空格
    ‘{’前留一个空格;
    ‘:’后留一个空格;
    句末不留多余的空格;

  • 3、每个属性声明末尾都要添加分号(单元内统一)

.click-btn {width: 100px;
}
  • 4、换行
    ‘{’后和‘}’后换行
    多个规则的选择器用‘,’分割并换行
.aa,
.bb {color: red;
}
  • 5、属性声明顺序

1)定位:position\z-index\top\right\bottom\left\clip;
2)盒子模型:width、height、min-width、max-height、min-height、max-height、margin、padding;
3) 文字:font、font-size、font-weight、text-align
4) 背景:background-image
5) 其他:animation、transition等

  • 6、属性缩写

1)属性合并,包括有margin、padding、border、background等

// bad
.aa {padding-top: 5px;padding-right: 5px;padding-bottom: 5px;margin-top: 10px;margin-left: 20px;
}// good
.aa {padding: 5px 5px 5px 0;margin: 10px 0 0 20px;
}

2)0符号缩写
0px直接写成 0;

  • 7、性能优化
    优先使用class,禁止使用行内样式,也就是在dom节点中写入style=,规避这种写法的用意在于行内样式不易于维护、不可复用、扩大HTML容量。除非特殊情况(-webkit-box-origin stylus 无法解析只能写在行内样式中等)
    禁止使用标签选择器。规避这种写法的用意在于CSS解析是从右到左的,如果使用标签选择器,则css渲染会花费很多性能。另外会影响所有该标签选择器的元素样式,导致,导致特殊情况需要样式重置,不利于维护。
.span {}
  • 8、模块化命名
    样式选择器命名以模块为单位,以下是一个box模块
<div class="box"><p class="title">title</p><div class="content"><i class="icon"></i><p class="text">content</p></div>
</div>

css模块化命名

  .box {}.box .tltle {}.box .content {}

这样命名的好处是,知道该整块的整体样式,易于维护模块迁移或者删除,并且每个样式块都有前缀,不会被覆盖。

  • 9、模块样式跟其他模块之间要空一行,便于维护
<!-- 这里是box2模块 -->.box {}.box .tltle {}.box .content {}<!-- 这里是box2模块 -->.box2 {}.box2 .tltle {}.box2 .content {}
  • 10、公共样式有的,不单独重写样式
  • 11、尽量少用 !important
  • 12、单独vue文件样式引用加scoped
  • 13、非公共样式命名时,类名尽量不要太常见(举例:常见的如:“title”,可以采用“instance-title”),避免浏览器缓存对样式造成的影响

六、JS编码规范

  • 1、使用驼峰式变量命名、属性
  • 2、常量使用全大写,使用下划线“_”作为单词分割
  • 3、总是使用分号,句末习惯性加上分号
  • 4、使用2个空格缩进
  • 5、冒号、逗号、小括号、大括号后总是使用空格符
// bad 
let arr={a:1,b:2,c:3}
function foo(){}
// good
let arr = {a: 1,b: 2,c: 3,
};
function foo() {}
  • 6、构造函数命名使用驼峰式切第一个字母大写
function BookDesk() {}
  • 7、总是使用花括号
// bad
if (true) return;
// good
if (true) {return;
}
  • 8、使用换行将逻辑相对独立的两块代码隔开
  • 9、比较变量使用===代替 ==;
  • 10、条件种类超过3种时,使用switch代替if
  • 11、使用forEach代替for循环
  • 12、函数作用域中的私有函数需要加上_

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql中NULL值

mysql中NULL值表示“没有值”&#xff0c;它跟空字符串""是不同的 例如&#xff0c;执行下面两个插入记录的语句&#xff1a; insert into test_table (description) values (null); insert into test_table (description) values ();执行以后&#xff0c;查看表的…

harmonyOS鸿蒙内核概述

内核概述 内核简介 用户最常见到并与之交互的操作系统界面&#xff0c;其实只是操作系统最外面的一层。操作系统最重要的任务&#xff0c;包括管理硬件设备&#xff0c;分配系统资源等&#xff0c;我们称之为操作系统内在最重要的核心功能。而实现这些核心功能的操作系统模块…

2023年全国职业院校技能大赛信息安全管理与评估正式赛(模块三理论技能)

2023年全国职业院校技能大赛&#xff08;高等职业教育组&#xff09;“信息安全管理与评估”理论技能 理论技能与职业素养&#xff08;100分&#xff09; 【注意事项】 1.理论测试前请仔细阅读测试系统使用说明文档&#xff0c;按提供的账号和密码登录测试系统进行测试&…

【经验分享】gemini-pro和gemini-pro-vision使用体验

Gemini Gemini已经对开发者开放了Gemini Pro的使用权限&#xff0c;目前对大家都是免费的&#xff0c;每分钟限制60条&#xff0c;至少这比起CloseAI的每个账户5刀限速1min3条要香的多&#xff0c;目前已于第一时间进行了体验 一句话总结&#xff0c;google很大方&#xff0c;但…

【Spring】@SpringBootApplication注解解析

前言&#xff1a; 当我们第一次创建一个springboot工程时&#xff0c;我们会对启动类&#xff08;xxxApplication&#xff09;有许多困惑&#xff0c;为什么只要运行启动类我们在项目中自定义的bean无需配置类配置&#xff0c;扫描就能自动注入到IOC容器中&#xff1f;为什么我…

仿牛客论坛的一些细节改进

私信列表的会话头像链接到个人主页 原来的不足 点击私信列表的会话头像应该要能跳转到该目标对象的个人主页。 原来的代码&#xff1a; <a href"profile.html"><img th:src"${map.target.headerUrl}" class"mr-4 rounded-circle user-he…

三、Java运算符

1.运算符和表达式 运算符&#xff1a; ​ 就是对常量或者变量进行操作的符号。 ​ 比如&#xff1a; - * / 表达式&#xff1a; ​ 用运算符把常量或者变量连接起来的&#xff0c;符合Java语法的式子就是表达式。 ​ 比如&#xff1a;a b 这个整体就是表达式。 ​ 而其…

数据分析为何要学统计学(4)——何为置信区间?它有什么作用?

置信区间是统计学中的一个重要工具&#xff0c;是用样本参数()估计出来的总体均值在某置信水平下的范围。通俗一点讲&#xff0c;如果置信度为95%&#xff08;等价于显著水平a0.05&#xff09;&#xff0c;置信区间为[a,b]&#xff0c;这就意味着总体均值落入该区间的概率为95%…

Two Phase Termination(两阶段)设计模式

Two Phase Termination设计模式是针对任务由两个环节组成&#xff0c;第一个环节是处理业务相关的内容&#xff0c;第二个阶段是处理任务结束时的同步、释放资源等操作。在进行两阶段终结的时候&#xff0c;需要考虑&#xff1a; 第二阶段终止操作必须保证线程安全。 要百分百…

2036开关门,1109开关门

一&#xff1a;2036开关门 1.1题目 1.2思路 1.每次都是房间号是服务员的倍数的时候做处理&#xff0c;所以外层&#xff08;i&#xff09;枚举服务员1~n&#xff0c;内层&#xff08;j&#xff09;枚举房间号1~n&#xff0c;当j % i0时&#xff0c;做处理 2.这个处理指的是&…

小项目:迷宫

目录 引言1.题目描述及思想2.代码实现3.最终结果 引言 这个迷宫的话就是去年这时候&#xff0c;我记得当时讲这个的时候我还是一脸懵逼&#xff0c;就是事后花时间能够看懂&#xff0c;能够理解&#xff0c;但是自己肯定是不能够实现的&#xff0c;而且觉得这个东西非常的庞大…

IIC和SPI结合实现室内温度计

iic.h #ifndef __IIC_H__ #define __IIC_H__ #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h" #include "gpio.h" /* 通过程序模拟实现I2C总线的时序和协议* GPIOF ---> AHB4* I2C1_SCL ---> PF14* I2C1_SDA ---> PF15** *…

facebook广告的门槛有哪些

Facebook广告的门槛主要包括以下几个方面&#xff1a; 账户资格&#xff1a;需要拥有一个有效的Facebook个人账号或商业账号。 账户状态&#xff1a;个人账号需要满足一定活跃度要求&#xff0c;而商业账号则需要满足公司名称和地址等详细信息的要求。 账户安全性&#xff1a…

每日一题:Leetcode974.和可被k整除的子数组

题目描述&#xff1a; 给定一个整数数组 nums 和一个整数 k &#xff0c;返回其中元素之和可被 k 整除的&#xff08;连续、非空&#xff09; 子数组 的数目。 子数组 是数组的 连续 部分。 示例 1&#xff1a; 输入&#xff1a;nums [4,5,0,-2,-3,1], k 5 输出&#xff1…

什么是PHPUnit?如何进行单元测试?

PHPUnit 是一个用于 PHP 的单元测试框架&#xff0c;它支持测试驱动开发&#xff08;TDD&#xff09;和行为驱动开发&#xff08;BDD&#xff09;。PHPUnit 提供了一套用于编写和运行测试的工具和断言方法。 以下是使用 PHPUnit 进行单元测试的基本步骤&#xff1a; 步骤 1: …

【LeetCode刷题笔记(4)】【Python】【移动零】【简单】

文章目录 题目描述示例 1示例 2提示 解决方案题意拆解双指针算法双指针法的主要优点双指针法的使用场景举例&#xff1a; 解决方案&#xff1a;【双指针一次遍历】解题心得方案代码运行结果复杂度分析 结束语 移动零 题目描述 给定一个数组 nums&#xff0c;编写一个函数将所…

代码随想录第三十一天(一刷C语言)|无重叠区间划分字母区间合并区间

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、无重叠区间 思路&#xff1a;参考carl文档 按照右边界排序&#xff0c;从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数了。 ledcode题目&a…

多线程------ThreadLocal详解

目录 1. 什么是 ThreadLocal&#xff1f; 2. 如何使用 ThreadLocal&#xff1f; 3. ThreadLocal 的作用 4. ThreadLocal 的应用场景 5. ThreadLocal 的注意事项 我的其他博客 ThreadLocal 是 Java 中一个很有用的类&#xff0c;它提供了线程局部变量的支持。线程局部变量…

家政服务小程序预约上门,让服务更便捷

随着人们生活节奏的加快&#xff0c;家政服务行业越来越受到人们的欢迎。为了满足市场需求&#xff0c;提高服务质量&#xff0c;家政公司需要开发一款预约上门的家政服务小程序。本文将详细介绍如何制作一个预约上门的家政服务小程序。 一、登录乔拓云网后台 首先&#xff0c…

模块二——滑动窗口:438.找到字符串中所有字母异位词

文章目录 题目描述算法原理滑动窗口哈希表 代码实现 题目描述 题目链接&#xff1a;438.找到字符串中所有字母异位词 算法原理 滑动窗口哈希表 因为字符串p的异位词的⻓度⼀定与字符串p 的⻓度相同&#xff0c;所以我们可以在字符串s 中构造⼀个⻓度为与字符串p的⻓度相同…