## clean code
```
1. 统一的命名规范,便于多人开发维护时代码统一,减少项目沟通和交接的成本,增加代码的语义化。
2. 统一缩进为2个空格。
```
## 文件名
```
1. 使用PascalCase为vue与tsx文件命名。
2. 使用camelCase为ts、js文件命名。
3. 使用camelCase为css文件命名。
4. 使用小写字母(a-z)、中划线(-)为文件夹命名。
5. 使用使用小写字母(a-z)、数字(0-9)、中划线(-)为图片、SVG等文件命名。
```
## CSS
#### 命名
```
1. 使用小写字母(a-z)、数字(0-9)、中划线(-)为class命名。
(首字符必须是字母)
2. 把id留给后台开发和js使用,允许用id命名。
(ID命名建议使用camelCase命名)
3. 写完一个class样式后空一行。
.login {
width: 100%;
height: 100%;
.title {
padding: 16px;
}
}
.box {
width: 20px;
}
4. 属性值需要使用到引号时,使用双引号""。
```
## HTML
```
1. 使用小写作为HTML5元素名。
(比如 使用 <div></div> 而不是 <DIV></DIV>)
2. 属性值使用双引号""。
(比如 使用 type="text" 而不是 type=text)
3、纯数字框建议采用 type="tel"。
```
## TS、JS
#### 命名
```
1. 使用PascalCase为类型命名。
2. 使用PascalCase为枚举值命名。
3. 使用camelCase为函数命名。
4. 使用camelCase为属性或本地变量命名。
5. 尽可能使用完整的单词拼写命名。
7. 常量(不可变数据)使用大写字母(A-Z)、下划线(_)命名。
helloWorld -> HELLO_WORLD
```
#### 分号
```
推荐interface/type声明类型时加分号。
其他不加。(开头是括号、方括号、反引号必须加分号)
真正导致解析出现问题的有 括号、方括号、反引号、正则开头的斜杠、加号、减号为首的情况,实际项目中颇为少见。
真正遇到了,也可以基本都是括号、方括号、反引号开头的,需要在开头加分号。
例如 括号开头 IIFE。
;(function(){
console.log(1)
})()
1. 自执行函数建议用
void functoin () {
}()
!functoin () {
}()
!!functoin () {
}()
例如 方括号开头。
;[1, 2, 3].forEach()
例如 反引号开头。
;`abc`.match(/[a-z]/)
例如 正则开头。
;/[a-z]/g.test()
例如 加号、减号开头。
;++a
;--b
而return后面换行,不管你加不加分号,其结果都是一样的。
```
#### 注释
```
为函数,接口,枚举类型和类使用JSDoc风格的注释。
```
#### 字符串
```
使用单引号''。
```
#### null 和 undefined
```
使用 undefined,不要使用 null。
```
#### 类
```
1. 使用PascalCase为类命名。
2. 为了保持一致,在函数式调用链中不要使用类,使用函数闭包代替。
```
#### 风格
```
1. 使用arrow函数代替匿名函数表达式。
2. 总是使用{}把循环体和条件语句括起来。
3. 开始的{总是在同一行。
4. 小括号里开始不要有空白。
逗号,冒号,分号后要有一个空格。比如:
1. for (let i = 0; i < 10; i++) { }
2. if (x < 10) { }
3. function f(x: number, y: string): void { }
5. 每个变量声明语句只声明一个变量。
(比如 使用 let x = 1; let y = 2; 而不是 let x = 1, y = 2;)
6. else要在结束的}的后面而不是另起一行。
if () {
} else {
}
7. 强制使用 === 以免引起不必要的麻烦,保证程序严谨性。
8. 请使用函数声明,而不是函数表达式。
(比如 function a() {} 而不是 const a = function(){})
9. 不要在非函数代码块中声明函数。
(比如 if (isVisible) {function a() {}})
10. 事件的调用函数命名统一规则 动词 + 形容词/名词/介词 或者 介词 + 动词。
(比如 handleWith、onSelect)
11. 声明变量必须赋予类型,尽量不要声明any。
(不可变数据不用)
12. 函数参数必须赋予类型且声明返回类型。
function (name: string): void {}
13. 修改函数参数,不允许修改引用数据类型指针。
例如:
function (obj: object): void {
obj.name = '666'
obj = {}
obj.name = '999'
}
14. 推荐函数式编程风格充分利用函数引用透明性,类、泛型用于逻辑复用。
15. 副作用单独处理,不要与纯函数混在一起。
16. 使用代理而不是切片。
17. async/await、Promise,同样的功能实现,建议使用Promise。
18. try{}catch(e){} 留给真正需要例外处理的方法。
```
## VUE
#### template
```
1. 使用小写字母(a-z)、中划线(-)作为组件名。
import ErrorContent from 'ErrorContent.vue'
<template>
<error-content></error-content>
</template>
2. 使用小写字母(a-z)、中划线(-)作为属性名。
<header-com :side-list="sideList" @side-props="onSideProps"></header-com>
3. 多属性处理。
<header-com :class="{'header': isHeader}"
:type="xxx"
:show="false">
</header-com>
4. 双括号,左右个加一个空格。
<div>{{ name }}</div>
5. 获取事件对象用 $event。
<input @click="handleClick($event)">
```
#### tsx
```
1. 使用PascalCase作为组件名。
import ErrorContent from 'ErrorContent.vue'
render () {
return (
<ErrorContent></ErrorContent>
)
}
2. 使用camelCase作为属性名。
<HeaderCom sideList={sideList}></HeaderCom>
```
没有合适的资源?快使用搜索试试~ 我知道了~
VUE3.0+TypeScript的后台管理系统基础架构.zip
共79个文件
ts:34个
vue:17个
js:5个
需积分: 0 0 下载量 115 浏览量
2024-01-02
20:58:41
上传
评论
收藏 685KB ZIP 举报
温馨提示
Vue3,springboot,element-ui使用技巧,实战应用开发小系统参考资料,源码参考。 详细介绍了一些Qt框架的各种功能和模块,以及如何使用Qt进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够帮助你快速上手Qt并掌握其高级特性。
资源推荐
资源详情
资源评论
收起资源包目录
VUE3.0+TypeScript的后台管理系统基础架构.zip (79个子文件)
VUE3_new
.editorconfig 39KB
.browserslistrc 30B
.env.test 47B
babel.config.js 226B
.eslintrc.js 1KB
src
mock
index.ts 546B
main.ts 546B
store
modules
user.ts 2KB
index.ts 249B
assets
css
transition.scss 663B
mixin.scss 3KB
base.css 713B
images
error-page
error-500.svg 33KB
error-401.svg 31KB
error-404.svg 26KB
login-bg.png 449KB
icon
iconfont.js 173KB
App.tsx 658B
api
api.user.d.ts 192B
api.d.ts 121B
user.ts 756B
router.ts 2KB
components
base-loading
BaseLoading.vue 2KB
index.ts 522B
main
side
Side.vue 3KB
SubMenu.vue 1KB
index.ts 51B
MainView.vue 185B
header
Header.vue 2KB
Avatar.vue 2KB
Fullscreen.vue 3KB
index.ts 57B
index.ts 112B
content
Content.vue 964B
index.ts 60B
Main.vue 2KB
util.ts 2KB
routes
index.ts 2KB
plugin
directive
has.ts 592B
watermark.ts 2KB
index.ts 321B
ant-d
index.ts 640B
index.ts 260B
common
observer.ts 1KB
validate.ts 1KB
auth.ts 939B
storage.ts 2KB
request.ts 1KB
shims-vue.d.ts 320B
util
dom.ts 1KB
getParams.ts 400B
oneOf.ts 605B
index.ts 1KB
pendingEffect.ts 705B
README.md 5KB
views
home
Home.vue 773B
error-page
404.vue 500B
401.vue 509B
ErrorContent.vue 2KB
500.vue 506B
alpha-menu
Level2.vue 220B
Level1.vue 220B
login
Login.vue 5KB
config
preloaderList.ts 108B
preloader.ts 494B
index.ts 649B
LICENSE 1KB
themes.js 638B
.env.development 55B
package.json 2KB
public
favicon.ico 4KB
index.html 2KB
package-lock.json 526KB
.env.prod 45B
vue.config.js 842B
.gitignore 231B
.eslintignore 61B
tsconfig.json 673B
README.md 2KB
共 79 条
- 1
资源评论
白话Learning
- 粉丝: 3213
- 资源: 2464
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功