Skip to main content

JS - React Naming Conventions

· 2 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', ...)