vue规范规则
vue组件,数据通信,样式,JS的规范规则。对vue官方风格指南的总结归类并加入自己的规范,在团队小组中使用。
1.项目名/文件目录命名:
kebab-case(- 连接):
项目名:vue-admin
文件目录:table-module
2.组件规范:
2.1 组件名为多个单词:
组件名应该始终是多个单词的,根组件 App 以及 <transition>、<component> 之类的 Vue 内置组件除外。
这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。
2.2 单文件组件的文件名大驼峰或者横线连接(为了import时更方便,项目使用大驼峰):
单词大写开头对于代码编辑器的自动补全最为友好。
2.3 紧密耦合的组件名:
和父组件紧密耦合的子组件应该以父组件名作为前缀命名。
如果一个组件只在某个父组件的场景下有意义,这层关系应该体现在其名字上。
因为编辑器通常会按字母顺序组织文件,所以这样做可以把相关联的文件排在一起。
components/
|- TodoList.vue
|- TodoListItem.vue
|- TodoListItemButton.vue
2.4 组件名中的单词顺序:
组件名应该以高级别的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。
比如对于一个带搜索表单的应用来说,它可能包含这样的组件:
components/
|- ClearSearchButton.vue
|- ExcludeFromSearchInput.vue
|- LaunchOnStartupCheckbox.vue
|- RunSearchButton.vue
|- SearchInput.vue
|- TermsCheckbox.vue
注意到了,我们很难看出来哪些组件是针对搜索的。现在我们来根据规则给组件重新命名:
components/
|- SearchButtonClear.vue
|- SearchButtonRun.vue
|- SearchInputExcludeGlob.vue
|- SearchInputQuery.vue
|- SettingsCheckboxLaunchOnStartup.vue
|- SettingsCheckboxTerms.vue
因为编辑器通常会按字母顺序组织文件,所以现在组件之间的重要关系一目了然。
2.5 自闭合组件:
在单文件组件、字符串模板和 JSX 中没有内容的组件应该是自闭合的——但在 DOM 模板里永远不要这样做。
注:
单文件组件:后缀.vue文件
DOM 模板:直接在HTML页面挂载的模板,就是原先写在页面上的,能被浏览器识别的HTML结构,会在一加载就被浏览器渲染,然后js获取dom节点的内容,
形成dom模板。
字符串模板:Vue实例中的template属性所对应的字符串
示例:
Vue.component('child', {
template: '<span>{{ type }}</span>'
})
2.数据通信规范:
3.1 Prop 定义应该尽量详细:
在你提交的代码中,prop 的定义应该尽量详细,至少需要指定其类型。
3.2 Prop 名大驼峰,在模板和 JSX 中应该始终使用 kebab-case(- 连接)。
props: {
greetingText: String
}
<WelcomeMessage greeting-text="hi"/>
4.组件样式规范:
4.1 组件样式设置作用域:
对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的,在style标签加上scoped(<style scoped>)。
这条规则只和单文件组件(文件扩展名为 .vue)有关。
4.2 scoped 中的元素选择器:
在 scoped 样式中,类选择器比元素选择器更好,因为大量使用元素选择器是很慢的。
4.3 采用SCSS写法,CSS命名
1.采用SCSS写法:<style scoped lang = "scss">
2.类名使用小写字母,以中划线分隔
3.id采用驼峰式命名
4.scss中的变量、函数、混合、placeholder采用驼峰式命名
5.JS命名规范:
通用命名规范:
1.所有变量必须是有意义的英文,禁止拼音;
2.变量命名采用小驼峰法;
3.常量必须所有单词大写,并且每个单词间加下划线;
变量命名规范:
后端字段与后端字段为准,不应用此规范
类型前缀 + 有意义的单词
1.字符串:sXXX,如:sName,sHtml;
2.数字:nXXX,如:nPage,nTotal;
3.逻辑:bXXX,如:bChecked,bHasLogin;
4.数组:aXXX,如:aList,aGroup;
5.正则:rXXX,如:rDomain,rEmail;
6.函数:fXXX,如:fGetList;
7.DOM节点:dXX,如:dDiv,dSpan;
8.其他类型:oXXX,如:oButton,oDate;
9.特殊简写:小范围作用域临时变量,如函数内部的局部变量或参数:o(Object)、e(Element)、evt(event)、err(errot)等;
循环变量:i、j、k以此类推;
注此JS规范参考MAX Yu
vue规范规则的更多相关文章
- CSS命名规范(规则)常用的CSS命名规则
CSS命名规范(规则)常用的CSS命名规则 CSS命名规范(规则)常用的CSS命名规则 头:header 内容:content/container 尾:footer ...
- Vue(五)Vue规范
代码规范很重要 1.组件名应该始终是多个单词的,根组件 App 除外. 2.组件的 data 必须是一个函数. // In a .vue file export default { data () { ...
- Vue路由规则中定义参数
Vue使用routerLinke定义参数的时候 路由规则中不需要更改任何属性. 路由其实就是我们在html中定义的锚点,点击这个连接跳转一个锚点.vue中的路由也是这个原理, 前提是路由必须创建在实 ...
- Vue 路由规则--传参数
1,query方法去获取参数 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- 初次在Vue项目使用TypeScript,需要做什么
前言 总所周知,Vue新版本3.0 使用 TypeScript 开发,让本来就很火的 TypeScript 受到更多人的关注.虽然 TypeScript 在近几年才火,但其实它诞生于2012年10月, ...
- Vue大概知识体系和学习参考
Vue大概知识体系和学习参考文档 官方文档学习,参考,借鉴地址:https://cn.vuejs.org/v2/guide/installation.html 菜鸟教程:https://www.run ...
- 前端规范之JS代码规范(ESLint + Prettier)
代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到或思考过这一问题.而随着前端应用的大型化和复杂化,越来越多的前端团队也开始重视代码规范.同样,前段时间,笔者所在的团队也开展了一 ...
- vue 排错
error The template root requires exactly one element vue/no-multiple-template-root ... 解决办法: .eslint ...
- css的书写规范+常用
格式化: body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blo ...
随机推荐
- Linux 脚本运维总结之Shell script
1. 本地变量和环境变量 变量类型 定义形式 声明位置 显示命令 作用域 本地变量 VARNAME=value 命令行或shell脚本 set (显示所有变量) 本用户,本进程 环境变量 export ...
- 二、Spring Boot系列:Spring Initializer快速创建Spring Boot项目
1.点击创建新工程 2.选择Spring Initializer和jdk1.8 注意:项目名称要小写字母 3.现在只需要一个创建一个web,选择一个就好 4.没有用的文件,可以删除 5.pom.xml ...
- BZOJ3038 上帝造题的七分钟
Time Limit: 3 Sec Memory Limit: 128 MB Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. "第一分钟,X说, ...
- 网路编程和并发:2.什么是C/S和B/S架构?
1.C/S 架构 客户端和服务器之间的架构.Client-Server也称客户机服务器模型. 在Client/Server结构的系统中,应用程序分为客户端和服务器两点部分,客户端为每个用户所有,服务器 ...
- 12.整合neo4j
neo4j 官网下载: https://neo4j.com/download-center/#community 教程: http://neo4j.com.cn/public/cypher/defau ...
- Spring---条件注解@Conditional
1.概述 1.1.Spring4 提供了一个更通用的 基于条件的Bean的创建,即使用@Conditional注解: 1.2.案例 package com.an.config; import co ...
- 【leetcode】897. Increasing Order Search Tree
题目如下: 解题思路:我的方法是先用递归的方法找出最左边的节点,接下来再对树做一次递归中序遍历,找到最左边节点后将其设为root,其余节点依次插入即可. 代码如下: # Definition for ...
- Android Fastboot 与 Recovery 和刷机 千山万水迷了鹿
1. 首先来看下Android系统的分区: Android系统的分区.jpg Android分区解释.png 安卓系统一般把rom芯片分成7个区,如果再加上内置sd卡这个分区,就是8个: hb ...
- JS中算法之检索算法(查找算法)
顺序查找 查找指定值 function seqSearch(arr, data) { for (var i = 0; i < arr.length; ++i) { if (arr[i] == d ...
- EDA课设-交通灯-Verilog版----FPGA--004
分得到析四个状态: S1: 主干道(绿灯亮) ,支干道(亮红灯):--40S S1: 主干道 (黄灯亮) ,支干道(亮红灯):--4S S1: 主干道 (亮红灯),支干道(绿灯亮):--20S S1: ...