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技 ...
随机推荐
- UiPath之文件操作
今天给大家介绍一下,在UiPath中如何操作文件,比如需要在某个文件夹中自动创建一个当天日期的文本. 主要使用的activity有: l Assign l Path Exists l If l ...
- JDK安装脚本
JDK@Python脚本代码如下(JDK1.8.0_31) # -*- coding: utf-8 -*- # !/usr/bin/env python # @Time : 2018/1/2 18:0 ...
- java VS c#,异同点
因工作安排,后期需要维护一个java项目.所以稍微熟悉下java,开此篇记录下java与c#的区别点,方便增强自己学习效果.肯定是不全的,可能是有错的,欢迎批评指正. 一.关键字 描述 C# Java ...
- javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: ResultSet is from UPDATE. No Data.
Java jpa调用存储过程,抛出异常如下: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCEx ...
- 在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动
由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等 ...
- SpringBoot 源码解析 (七)----- Spring Boot的核心能力 - 自定义Servlet、Filter、Listener是如何注册到Tomcat容器中的?(SpringBoot实现SpringMvc的原理)
上一篇我们讲了SpringBoot中Tomcat的启动过程,本篇我们接着讲在SpringBoot中如何向Tomcat中添加Servlet.Filter.Listener 自定义Servlet.Filt ...
- windows 10安装和配置caffe教程 | Install and Configure Caffe on windows 10
本文首发于个人博客https://kezunlin.me/post/1739694c/,欢迎阅读! Install and Configure Caffe on windows 10 Part 1: ...
- 如何在maven中下载jar包
1.进入maven网址 https://mvnrepository.com/ 2.搜索你想要的包的名字 3.找到列表中你想要的包 4.点击一个版本 5.点击 view all 6.找到你想要的包,点 ...
- su root
1. 命令行方式 ansible zabbix_agents --become --become-method=su -K -m shell -a 'whoami' 2. 变量方式 [zabbix_a ...
- [从今天开始修炼数据结构]串、KMP模式匹配算法
[从今天开始修炼数据结构]基本概念 [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList [从今天开始修炼数据结构]栈.斐波那契数列.逆波兰四则运 ...