1. prettier
2. eslint
3. 네이밍
분류 | 규칙 | 예시 | eslint 강제 유무 |
상수 | UPPER_SNAKE_CASE | const MAX_USERS = 10; | ㅤ |
변수 | camelCase
boolean은 접두사 사용 | let userName = 'JohnDoe';
let isActive = true;
let hasLoggedIn = false; | ✅ |
함수 | camelCase, 동사+명사
boolean 반환은 'is' 접두사,
api 요청 함수는 동사에 메서드,
api 요청 함수에 명사 없을시 생략 | const getUserProfile = () ⇒ { ... }
const isUserActive = () ⇒ { ... }
const async getPost = () ⇒ { … }
const async login = () ⇒ { … } | ⚠ 이름 규칙만 |
이벤트 핸들러 | camelCase
handle+명사+동사
props는 on 사용 | const handleButtonClick = () ⇒ { ... }
<button onClick={handleButtonClick}>Click me</button> | ㅤ |
컴포넌트 | PascalCase | const UserList = () ⇒ { ... } | ㅤ |
type 별칭 | PascalCase
Type 접미사 | type UserResponseType = ...
type ButtonClickType = ... | ✅ |
interface | PascalCase
컴포넌트에만 Props 접미사
그외 (스타일드컴포넌트포함) 모두 I 접두사 | interface UserProps { ... }
interface IUserOptions { ... } | ✅ |
styled-component | PascalCase
St 접두사 | const StButton = styled.button
<StButton>Save</StButton> | ㅤ |
ㅤ | ㅤ | ㅤ | ㅤ |
함수 인자 구조분해 | 규칙 없음 (모든 컨벤션 무시) | const createUser = ({ userName, userEmail }) ⇒ { ... } | ㅤ |
4. 코드 스타일
5. 폴더구조
6. import 순서 규칙
아래에 위치할수록 본문과 가까워져서 중요도 높은 순으로 오름차순 정렬
- 나머지
- @storybook*
- emotion*
- react*
- @*
- ../
- ./