Skip to main content

JS - React Naming Conventions

· One min read

Final Project Structure

src/
│
├── components/
│ └── UserProfile/
│ ├── UserProfile.tsx
│ ├── userProfile.module.css
│ └── UserProfile.test.tsx
│
├── hooks/
│ └── useAuth.ts
│
├── utils/
│ └── formatDate.ts
│
├── constants/
│ └── api.ts
│
├── contexts/
│ └── AuthContext.tsx

File Structure​

TypeConventionExample
Component directoryPascalCaseUserProfile/
Component filePascalCase.tsx/jsUserProfile.tsx
Style file per componentcamelCase.module.cssuserProfile.module.css
Utility filescamelCase.ts/jsformatDate.ts
Hook filesuse + camelCase.tsuseAuth.ts
Context filesPascalCase.tsxAuthContext.tsx
ConstantsSCREAMING_SNAKE_CASE.tsAPI_BASE_URL
Test filesMatch component + .test.tsxUserProfile.test.tsx

Component Names​

ElementConventionExample
Component NamePascalCaseUserCard
Props InterfacePascalCasePropsUserCardProps
Layout/WrapperPascalCaseMainLayout

Test Naming (Jest, RTL)​

TypeConventionExample
Describe BlockComponent/Featuredescribe('UserProfile', ...)
Test CaseSentence-styleit('displays user info', ...)