배경
React 프로젝트를 개발하면서 자주 사용하는 eslint rule를 있지만 매번 까먹고 매번 다시 찾는게 귀찮아서 정리해본다. 나는 react/no-unused-vars
는 빨간 줄이 너무 거슬려서 off 한다. JSX 컴포넌트의 프로퍼티를 정렬해주는 react/jsx-sort-props
도 가독성 측면에서 유용하다.
다음의 rule들을 React 프로젝트의 .eslintrc.[json, cjs] 의 rules에 추가하면 된다. 이러한 규칙은 React 프로젝트에서 코드 품질을 향상시키고 가독성을 높이며, 접근성을 개선하는 데 도움이 된다.
자주 사용하는 Eslint Rules
react/jsx-sort-props
: JSX 프로퍼티를 알파벳 순서로 정렬하도록 하는 규칙이다. 코드의 일관성을 유지하고 가독성을 높이기 위해 사용된다. 예를 들어,<Component b={2} a={1} />
대신<Component a={1} b={2} />
로 정렬된다.no-unused-vars
: 사용하지 않는 변수를 경고하는 규칙으로, 선언한 변수가 사용되지 않으면 경고 메시지를 표시한다. 코드의 불필요한 변수 선언을 방지하고 가독성을 향상시킨다.react/prop-types
: React 컴포넌트의 프로퍼티(props) 유형을 정의하도록 하는 규칙이다. 프로퍼티 유형을 정의하면 컴포넌트 사용 시 타입 오류를 방지하고 문서화에 도움이 된다.react/no-unused-prop-types
: 사용하지 않는 React 프로퍼티 타입을 경고하는 규칙이다.react/prop-types
과 함께 사용하여 사용되지 않는 프로퍼티 타입을 식별한다.react/no-array-index-key
: 배열 요소를 렌더링할 때 key로 배열의 인덱스를 사용하지 않도록 경고하는 규칙이다. 배열의 고유 식별자(key)를 사용하여 React 성능을 최적화하는 데 도움이 된다.react/react-in-jsx-scope
: JSX 코드를 작성할 때 React를 import하지 않으면 경고하는 규칙이다. JSX 코드 내에서 React 컴포넌트를 사용할 때 필요한 규칙이다.react-hooks/rules-of-hooks
: React 훅을 올바르게 사용하는지 확인하는 규칙이다. React 함수 컴포넌트 내에서 훅 규칙을 따르지 않으면 경고 메시지를 표시한다.jsx-a11y/alt-text
: 이미지 요소에 대체 텍스트(alt 속성)를 제공하지 않으면 경고하는 규칙이다. 웹 접근성을 높이기 위한 규칙 중 하나로, 시각 장애인을 위한 텍스트 설명을 제공한다.jsx-a11y/click-events-have-key-events
: 클릭 가능한 요소에 키 이벤트를 제공하지 않으면 경고하는 규칙이다. 접근성을 향상시키기 위해 클릭 이벤트와 함께 키 이벤트도 제공하는 것이 좋다.jsx-a11y/label-has-for
: 폼 요소와 레이블을 연결하지 않으면 경고하는 규칙이다. 접근성을 높이기 위해 레이블과 폼 요소를 연결하여 화면 낭독기가 폼을 이해할 수 있도록 한다.
.eslintrc.cjs
module.exports = {
root: true,
env: { browser: true, es2020: true },
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:react/jsx-runtime',
'plugin:react-hooks/recommended',
],
ignorePatterns: ['dist', '.eslintrc.cjs'],
parserOptions: { ecmaVersion: 'latest', sourceType: 'module' },
settings: { react: { version: '18.2' } },
plugins: ['react-refresh', 'react', 'react-hooks', 'prettier', 'import'],
rules: {
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
'react/jsx-sort-props': 'warn',
'no-unused-vars': 'warn',
},
};
'IT > Front-End' 카테고리의 다른 글
[React] vite + react로 github.io 배포하기 (0) | 2023.10.15 |
---|---|
[React] createPortal (1) | 2023.10.10 |
[React] Webpack 마는 법 (0) | 2023.09.18 |
Big projects are ditching TypeScript… why? 요약 (0) | 2023.09.11 |
[JS] 코딩테스트 입문 (0) | 2023.08.18 |