代码命名规范2024
代码命名规范2024
包括但不限于React TypeScript相关项目实践
-
文件命名:
- 使用小写字母
- 多个单词用连字符(-)分隔,如
user-profile.ts
- React组件文件使用PascalCase,如
UserProfile.tsx
- 测试文件添加
.test.ts
或.spec.ts
后缀 - 样式文件使用
.module.css
后缀表示CSS模块
-
组件命名:
- 使用PascalCase,如
UserProfile
- 高阶组件可以使用
with
前缀,如withAuth
- 使用PascalCase,如
-
Hook命名:
- 使用
use
前缀,如useLocalStorage
- 使用
-
类型和接口:
- 使用PascalCase
- 接口不要加
I
前缀 - 类型可以使用
Type
后缀,如UserType
-
常量:
- 使用全大写,下划线分隔,如
MAX_COUNT
- 使用全大写,下划线分隔,如
-
函数和变量:
- 使用camelCase
- 布尔值可以使用
is
、has
、can
等前缀
-
事件处理函数:
- 使用
handle
前缀,如handleClick
- 使用
-
Props:
- 使用camelCase
- 避免使用缩写
-
枚举:
- 枚举名使用PascalCase
- 枚举成员使用PascalCase
-
命名空间:
- 使用PascalCase
遵循这些命名规范可以提高代码的一致性和可读性。团队应该根据具体项目需求制定详细的命名规范文档,并在代码审查中严格执行。
补充:文件夹命名
-
主要文件夹:
- 使用小写字母
- 单个单词优先,如
components
,pages
,hooks
,utils
- 如果需要多个单词,使用kebab-case(短横线连接),如
api-services
-
组件文件夹:
- 使用PascalCase,与组件名称一致
- 例如:
Button
,UserProfile
,NavigationBar
-
特性或模块文件夹:
- 使用小写字母
- 如果是多个单词,使用kebab-case
- 例如:
user-management
,product-catalog
-
版本文件夹:
- 如果需要版本控制,使用
v
前缀加数字 - 例如:
v1
,v2
- 如果需要版本控制,使用
-
测试文件夹:
- 使用小写的
__tests__
- 使用小写的
-
类型定义文件夹:
- 使用小写的
types
或interfaces
- 使用小写的
-
资源文件夹:
- 使用小写,如
assets
,images
,fonts
- 使用小写,如
-
环境配置文件夹:
- 使用小写,如
config
,environments
- 使用小写,如
-
布局组件文件夹:
- 使用小写的
layouts
- 使用小写的
-
公共组件文件夹:
- 使用小写的
common
或shared
- 使用小写的
示例文件结构:
src/
components/
Button/
UserProfile/
NavigationBar/
pages/
hooks/
utils/
api-services/
assets/
images/
fonts/
types/
layouts/
common/
features/
user-management/
product-catalog/
__tests__/
config/
这种命名方式有助于保持项目结构的一致性和清晰度。记住,最重要的是在团队内 部达成共识,并在整个项目中保持一致。可以将这些规范写入团队的开发文档中,确保所有成员都遵循相同的命名约定。
单复数名词规范
-
文件夹命名:
- 通常使用单数形式,如
component
,util
,hook
- 表示集合的文件夹可以使用复数,如
pages
,styles
- 通常使用单数形式,如
-
文件命名:
- 组件文件使用单数,如
Button.tsx
,UserProfile.tsx
- 工具函数文件通常用单数,如
format.ts
,validate.ts
- 类型定义文件可以用复数,如
types.ts
,interfaces.ts
- 组件文件使用单数,如
-
变量命名:
- 单个实例用单数,如
const user = {...}
- 表示多个项目的数组或集合用复数,如
const users = [...]
- 单个实例用单数,如
-
接口和类型命名:
- 通常使用单数,如
interface User
,type ButtonProps
- 通常使用单数,如
-
组件Props命名:
- 单个项目用单数,如
user: User
- 多个项目的数组用复数,如
users: User[]
- 单个项目用单数,如
-
函数命名:
- 处理单个项目的函数用单数,如
getUser()
- 处理多个项目的函数用复数,如
fetchUsers()
- 处理单个项目的函数用单数,如
-
Hook命名:
- 通常使用单数,如
useUser
,useForm
- 通常使用单数,如
-
上下文(Context)命名:
- 通常使用单数,如
UserContext
,ThemeContext
- 通常使用单数,如
-
常量命名: