Vue项目中的文件/文件夹命名规范
Vue项目中的文件/文件夹命名规范
文件或文件夹的命名遵循以下原则:
index.js或者index.vue,统一使用小写字母开头的(kebab-case)命名规范- 属于
组件或类的,统一使用大写字母开头的(PascalCase)命名规范- 其他非
组件或类的,统一使用小写字母开头的(kebab-case)命名规范
1. Why?
文件夹命名: camelCase VS kebab-case
展开node_modules中的项目依赖,会发现,几乎所有的项目文件夹命名都是 kebab-case命名的,使用kebab-case命名的文件夹比camelCase命名的文件夹看起来更清晰
组件命名:kebab-case VS PascalCase
vue的官方的风格指南中关于组件文件名的推荐:
单文件组件文件的大小写强烈推荐
单文件组件的文件名应该要么始终是单词大写开头 (PascalCase),要么始终是横线连接 (kebab-case)。
单词大写开头对于代码编辑器的自动补全最为友好,因为这使得我们在 JS(X) 和模板中引用组件的方式尽可能的一致。然而,混用文件命名方式有的时候会导致大小写不敏感的文件系统的问题,这也是横线连接命名同样完全可取的原因。
2. 文件夹命名规范
属于
components文件夹下的子文件夹,使用大写字母开头的PascalBase风格
- 全局通用的组件放在 /src/components下
- 其他业务页面中的组件,放在各自页面下的 ./components文件夹下
- 每个components文件夹下最多只有一层文件夹,且文件夹名称为组件的名称,文件夹下必须有
index.vue或index.js,其他.vue文件统一大写开头(Pascal case),components下的子文件夹名称统一大写开头(PascalCase)其他文件夹统一使用
kebab-case的风格
全局公共组件:/src/components示例
- [components]
- [Breadcrumb]
- index.vue
- [Hamburger]
- index.vue
- [SvgIcon]
- index.vue
业务页面内部封装的组件:以 /src/views/layout/components示例
-[src]
- [views]
- [layout]
- [components]
- [Sidebar]
- index.vue
- Item.vue
- SidebarItem.vue
- AppMain.vue
- index.js
- Navbar.vue`
index.js 中导出组件方式如下:
export { default as AppMain } from './AppMain'
export { default as Navbar } from './Navbar'
export { default as Sidebar } from './Sidebar'
看index.js中最后一行代码,不难发现,为什么components下的子文件夹要使用
PascalCase命名:export { default as Sidebar } from './sidebar' // 使用kebab-case命名的文件夹
export { default as Sidebar } from './Sidebar' // 使用 PascalCase命名的文件夹
对于组件的导出/导入,我们一般都是使用大写字母开头的
PascalCase风格,
以区别于.vue组件内部的其他camelCase声明的变量,[Sidebar]作为【侧边栏组件】的一个整体被导出,文件夹的命名也采用PascalCase,
有利于index.js中export时的前后统一,避免很多情况下不注意区分大小写
3. 文件命名规范
3.1. *.js文件命名规范
- 属于类的.js文件,除index.js外,使用
PascalBase风格- 其他类型的.js文件,使用
kebab-case风格- 属于Api的,统一加上
Api后缀
3.2. *.vue文件命名规范
除index.vue之外,其他.vue文件统一用
PascalBase风格
3.3. *.less文件命名规范
统一使用
kebab-case命名风格
Vue项目中的文件/文件夹命名规范的更多相关文章
- vue-cli构建的vue项目中引入stylus文件
在写基于vue-cli的vue项目时,如果直接引入styl文件,会报错,需要安装stylus.stylus-loader依赖以及别名配置. 1.下载安装stylus.stylus-loader,推荐使 ...
- vue项目中导出Excel文件功能的前端代码实现
在项目中遇到了两种不同情况, 1.get请求导出文件,实现起来相对简单 // 导出数据 exportData() { window.location.href = `/oes-content-mana ...
- vue项目中操作PDF文件
以前从来没接触过前端要求显示PDF文件,一时之间有点懵逼,不知从哪下手啊... 无奈之下,去找度娘,方法还不少,iframe embed object这些标签就可以, 可是拿过来做个demo一试, ...
- Vue项目中引入外部文件(css、js、less)
例子中css文件采用bootstrap.css,js文件采用jQuery,less文件用less.less(自定义文件) 步骤一:安装webpack cnpm install webpack -g 步 ...
- Vue 项目中对路由文件进行拆分(解构的方法)
项目需求场景: 在开发项目过程中,在项目过于庞大,路由信息非常多的情况下,如果将路由配置信息都放在一个文件里面,那么这个JS是不方便维护的, 那么,这个时候需要我们把这个庞大的路由文件,根据项目功能分 ...
- 在vue项目中的js文件里使用vue实例
参考的网址:https://blog.csdn.net/weixin_34353714/article/details/86958742 不为其他,就为了记录一下,方便以后查看: 第一种方法: 1.首 ...
- Vue项目中导入excel文件读取成js数组
1. 安装组件 cnpm install xlsx --save 2. 代码 <template> <span> <input class="input-fil ...
- vue项目中使用阿里iconfont图标
在上一篇文章中介绍了如何在vue项目中使用vue-awesome,如果你想了解,请移步<vue项目中使用vue-awesome> 这里介绍一下vue项目中如何使用阿里的iconfont图标 ...
- 【转载】Vue项目中的文件/文件夹命名规范
文件或文件夹的命名遵循以下原则: index.js 或者 index.vue,统一使用小写字母开头的(kebab-case)命名规范 属于组件或类的,统一使用大写字母开头的(PascalCase)命名 ...
随机推荐
- jacascript CSS样式的脚本化(js)操作
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 引入CSS有3种方式:行间样式,内联样式和外部链接样式. 在实际工作中,我们使用 javascript 操 ...
- 整理下线段树吧 poj hotel
除了上次的新学的有 区间更新 延迟更新 区间合并 先说下区间更新以及延迟更新吧 既然是对区间的维护 在求解一些问题的时候 有的时候没有必要对所有的自区间都进行遍历 这个时候 延迟标记就派上用场了 ( ...
- 十大经典排序【Java实现,手工作坊式】
终于把排序这个硬骨头,但是又很基础的知识点,自己手撕了一遍!之前,使用Python看着算法导论的书手撕过一遍,印象不是很深刻,容易忘记!好记性不如烂笔头!多自己思考解决问题 1,交换类CAS[最简单] ...
- C#从零单排上王者系列---元组
从零单排系列说明 博主最初的想法是想写个蜕茧成蝶的系列文章,后来觉得博客的表现形式很难做到连贯和系统.所以从本篇博客开始博主会选择书中比较重要和不好理解的知识点并结合自己的实际工作经验来讲解,不再是照 ...
- @PostConstruct注解原理解析
所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 @PostConstruct注解使用简介 在了解一个东西的原理之前,我们得初步的懂得如何 ...
- js之向div contenteditable光标位置添加字符
js之向div contenteditable光标位置添加字符 原理: 在HTML里面,光标是一个对象,光标对象是只有当你选中某个元素的时候才会出现的. 当我们去点击一个输入框的时候,实际上它会产生 ...
- FastDFS高可用集群架构配置搭建及使用
一,概述FastDFS 是一个开源的高性能分布式文件系统(DFS). 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡.FastDFS 系统有三个角色:跟踪服务器(Tracker ...
- 批量删除checkbox前台后台
<%@ page contentType="text/html;charset=UTF-8" %><%@ include file="/WEB-INF/ ...
- 一步一步教你实现iOS音频频谱动画(一)
如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 第二篇:一步一步教你实现iOS音频频谱动画(二) 基于篇幅考虑,本次教程分为两篇文章,本篇文章主要讲述音频播放和频谱 ...
- line 352 Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow
OpenCV 使用 createtrackerbar()报错问题 Error Error: Assertion failed (size.width>0 && size.heig ...