Vue.js命名风格指南
前言
本命名风格指南推荐了一种统一的命名规范来编写 Vue.js 代码。这使得代码具有如下的特性:
统一团队的命名规范,其它开发者或是团队成员更容易上手阅读和理解。
IDEs 更容易理解代码,从而提供高亮、格式化等辅助功能。
本指南只是个人总结归纳的,仅作为一种参考。
命名分类
现在常用的vue命名规范无外乎四种:
camelCase
(驼峰式 )kebab-case
(短横线连接式)PascalCase
(帕斯卡命名式)Snake
(下划线连接式)
文件夹命名
如果你展开 node_modules
中的项目依赖,你会发现,几乎所有的项目文件夹命名都是 kebab-case
命名的,使用kebab-case
命名的文件夹比camelCase
命名的文件夹看起来更清晰。
属于components文件夹下的子文件夹,也统一使用 kebab-case
的风格。
组件命名
1、自定义组件名必须是多个单词组合的,并且是完整的单词而不是单词的缩写。
// 错误
components/
|- sd-settings.vue
|- u-prof-opts.vue
// 正确
components/
|- student-dashboard-settings.vue
|- user-profile-options.vue
2、单文件组件的文件名应该要么始终是单词大写开头 (PascalCase),要么始终是横线连接 (kebab-case)。
(推荐)这里全部使用kebab-case
格式,主要是后面很多会使用到kebab-case
格式,方便记忆。
单词大写开头对于代码编辑器的自动补全最为友好,因为这使得我们在 JS(X) 和模板中引用组件的方式尽可能的一致。然而,混用文件命名方式有的时候会导致大小写不敏感的文件系统的问题,这也是横线连接命名同样完全可取的原因。
3、应用特定样式和约定的基础组件 (也就是展示类的、无逻辑的或无状态的组件) 应该全部以一个特定的前缀开头,比如 Base
、App
或 V
。而且一般放在全局注册
,因为会被频繁使用。
// 错误
components/
|- MyButton.vue
|- VueTable.vue
|- Icon.vue
// 正确
components/
|- BaseButton.vue
|- BaseTable.vue
|- BaseIcon.vue
4、组件名中的单词顺序
组件名应该以高级别的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。
// 错误
components/
|- ClearSearchButton.vue
|- RunSearchButton.vue
|- SearchInput.vue
// 正确
components/
|- SearchButtonClear.vue
|- SearchButtonRun.vue
|- SearchInputQuery.vue
5、在JS中的组件名大小写
也就是在注册组件的时候,全部使用 PascalCase
格式。
import MyComponent from './my-component.vue'
export default {
name: 'MyComponent',
components:{MyComponent}
}
6、html模板中的组件命名
对于绝大多数项目来说,在单文件组件和字符串模板中组件名应该总是 PascalCase 的——但是在 DOM 模板中总是 kebab-case 的。
也就是说,如果在模板中写的是单标签,使用PascalCase格式,双标签则使用kebab-case格式。
(推荐)不管是单标签还是双标签,全部使用 kebab-case
格式,主要是为了方便。
<!--全部使用kebab-case格式-->
<my-component />
<my-component></my-component>
7、prop名称的大小写
在子组件html中传入prop的为kebab-case
格式,子组件接收方采用 camelCase
格式。
// 错误
<welcome-message greetingText="hi"/>
props: {
'greeting-text': String
}
// 正确
<welcome-message greeting-text="hi"/>
props: {
greetingText: String
}
8、组件事件命名
统一使用 kebab-case
格式,并且以动词
结尾。
// 正确
this.$emit('dom-resize');
this.$emit('api-load');
命名总结
1、采用kebab-case
命名的:
文件夹
单文件组件
组件在html模板中使用(
<my-component></my-component>
)在模板中prop传入属性到子组件(
<my-componnet set-text="hello"/>
)所有事件名(
this.$emit('api-reload')
)
2、采用PascalCase
命名:
公共基础组件(
MfcSelect
)js中components注册组件时(
import MyComponent from './my-component.vue'
)组件的name属性(
name: 'MyComponent'
)
3、采用camelCase
命名:
- 子组件接收prop属性
props: {
setText: String
}
Q&A
Q:为什么有些命名看起来既可以PascalCase
又可以kebab-case
的,都选择了kebab-case
?
A:因为如果有很多同时使用kebab-case
的话,比较方便记忆,仅此而已。
参考链接
Vue.js命名风格指南的更多相关文章
- 大神的JS代码风格指南
js代码风格指南:1.缩进使用空格,不要用制表符2.必须用分号3.暂时不用ES6(modules)例如export和import命令4.不鼓励(不禁止)水平对齐5.少用var 都应该使用const或者 ...
- Vue精简版风格指南
前面的话 Vue官网的风格指南按照优先级(依次为必要.强烈推荐.推荐.谨慎使用)分类,且代码间隔较大,不易查询.本文按照类型分类,并对部分示例或解释进行缩减,是Vue风格指南的精简版 组件名称 [组件 ...
- Google HTML/CSS/JS代码风格指南
JS版本参见:http://www.zhangxinxu.com/wordpress/2012/07/google-html-css-javascript-style-guides/ HTML/CSS ...
- Vue的理解:Vue.js新手入门指南----转
最近在逛各大网站,论坛,以及像SegmentFault等编程问答社区,发现Vue.js异常火爆,重复性的提问和内容也很多,楼主自己也趁着这个大前端的热潮,着手学习了一段时间的Vue.js,目前用它正在 ...
- Vue.js新手入门指南
最近在逛各大网站,论坛,以及像SegmentFault等编程问答社区,发现Vue.js异常火爆,重复性的提问和内容也很多,楼主自己也趁着这个大前端的热潮,着手学习了一段时间的Vue.js,目前用它正在 ...
- JS代码风格指南
一.基本格式 缩进 建议每级4个空格,可以给编辑器设置tab = 4个空格,自动转换 分号 不要省略分号,防止ASI(自动插入分号)错误 行宽 每行代码不超过80个字符,过长应该用操作符手动断行 断行 ...
- vue.js有什么用,是用来做什么的(整理)
vue.js有什么用,是用来做什么的(整理) 一.总结 一句话总结:用数据绑定的思想,vue可以简单写单个页面,也可以写一个大的前端系统,也可以做手机app的界面. 1.Vue.js是什么? 渐进式框 ...
- Vue风格指南总结及对应ESLint规则配置
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/10906951.html,多谢,=.=~ 必要的:规避错误: 强烈推荐:改善可读性和开发体验: 推 ...
- 《Vue.js 2.x实践指南》 已出版
<Vue.js 2.x实践指南>其实在一年前就已经完稿了,只是由于疫情的缘故耽搁了很久才下厂印刷.阅读本书需要具备HTML.CSS和JS基础,本书针对的用户群体主要是:想要快速学习vue技 ...
随机推荐
- 深入理解计算机系统 第二章 信息的表示和处理 part1
欣哥划的重点: 第二章比较难,建议至少掌握下面几个知识点: 1. 字节顺序 : 大端和小端 2. 运行 图2-24, 图2-25程序 show-bytes.c 观察结果,看看有什么问题 3. 理解布尔 ...
- Python数据挖掘入门与实战PDF电子版加源码
Python数据分析挖掘实战讲解和分析PDF加源码 链接: https://pan.baidu.com/s/1SkZR2lGFnwZiQNav-qrC4w 提取码: n3ud 好的资源就要共享,我会一 ...
- 基于R数据分析之常用Package讲解系列--1. data.table
利用data.table包变形数据 一. 基础概念 data.table 这种数据结构相较于R中本源的data.frame 在数据处理上有运算速度更快,内存运用更高效,可认为它是data.frame ...
- lqb 入门训练 A+B问题
入门训练 A+B问题 时间限制:1.0s 内存限制:256.0MB 问题描述 输入A.B,输出A+B. 说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标. 输入格式 输入的第 ...
- hdu 1874 畅通工程续 (floyd)
畅通工程续Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- windwos 10 安装flask
1 安装python2.7.13 安装文件为:python-2.7.13.amd64.msi,因为python2.7.13中已经包含了pip. 在安装过程中选中[Add python.exe to P ...
- 简单说说基于JWT的token认证方式
一.什么是认证 好多人不知道什么是认证,认证,其实就是服务端确认用户身份.Http协议是无状态的,客户端发送一条请求,服务端返回一条响应,二者就算做成一单买卖,一拍两散.在很久以前,互联网所能提供的服 ...
- UCACO刷题
UCACO刷题 SUBMIT: /* ID: your_id_here LANG: C++ TASK: test */ 文件:freopen(“file.in", "r" ...
- svn文件被锁不能提交的解决办法
记录工作中遇到的问题,分享出来: 前端时间在提交项目到svn遇到一个问题, 提交的时候提示:文件已经锁定!如下图: 原因是我之前提交的时候不小心中途停了,导致文件被锁,然后也没在意那么多, 趁着今天有 ...
- 元数据管理的重要性 - xms
什么是元数据?引用百科的描述就是:元数据(Metadata),又称中介数据.中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息: 看起来有点抽象 ...