interface 而非 type导出类型使用 export interface
// 正确
export interface IUserInfo {
userName: string
userId: number | string
}
// 避免
type UserInfo = {
userName: string
userId: number | string
}
.tsx 扩展名组件名使用 PascalCase
// 正确
export const UserList: React.FC<UserListProps> = ({ data }) => {
return <div>{/* 组件内容 */}</div>
}
@/)默认导出仅用于组件
// 正确
import React, { useState, useEffect } from "react"
import { useSelector, useDispatch } from "react-redux"
import { IUserInfo } from "@/types"
import { apiGetUserInfo } from "@/common/request"
use 开头避免在循环/条件中使用 Hooks
// 正确
export const useUserData = (userId: string) => {
const [user, setUser] = useState<IUserInfo>()
useEffect(() => {
// 获取用户数据
}, [userId])
return user
}
src/
├── components/ # 可复用组件
├── pages/ # 页面组件
├── manager/ # 业务逻辑管理器
├── store/ # 状态管理
├── common/ # 通用工具
├── types/ # 类型定义
└── styles/ # 样式文件
user-list.tsx)UserList)userName)MAX_USERS)IUserInfo)记录错误日志
try {
await apiCall()
} catch (error) {
console.error("API调用失败:", error)
message.error("操作失败,请重试")
}