총 143건
렌더 내부에서 RegExp를 생성하지 마세요. 모듈 스코프로 호이스트하거나 `useMemo()`로 메모하세요.
동일한 키로 여러 번의 `.find()` 호출은 지도를 사용해야 합니다.
배열을 값비싼 작업(소팅, 딥 이퀄리티, 직렬화)과 비교할 때는 먼저 길이를 확인하세요. 길이가 다르면 배열이 같을 수 없습니다.
가장 작거나 큰 요소를 찾는 것은 배열을 한 번만 통과하면 됩니다. 분류하는 것은 낭비적이고 느립니다.
반복적인 멤버십 확인을 위해 배열을 Set/Map으로 변환합니다.
많은 브라우저에는 SVG 요소의 CSS3 애니메이션에 대한 하드웨어 가속 기능이 없습니다. SVG를 `<div>`에 싸서 대신 포장지를 애니메이션으로 만드세요.
조건이 `&&` 대신 명시적 삼항 연산자(`? :`)를 사용하여 조건부 렌더링을 수행합니다. 조건이 `0`, `NaN` 또는 기타 거짓 값일 수 있습니다.
화면 밖 렌더링을 연기하려면 `content-visibility: auto`를 적용하세요.
재구성을 피하기 위해 외부 구성 요소에서 정적 JSX를 추출합니다.
클라이언트 측 스토리지(로컬 스토리지, 쿠키)에 의존하는 콘텐츠를 렌더링할 때는 이전에 DOM을 업데이트하는 동기화 스크립트를 삽입하여 SSR 파손과 수분 공급 후 깜박임을 방지하세요
SVG 좌표 정밀도를 줄여 파일 크기를 줄입니다. 최적의 정밀도는 viewBox 크기에 따라 달라지지만, 일반적으로 정밀도를 줄이는 것을 고려해야 합니다.
콜백 내부에서만 읽는 경우 동적 상태(searchParams, localStorage)에 가입하지 마세요.
객체 대신 원시 종속성을 지정하여 효과 재실행을 최소화하세요.
연속 값 대신 파생된 불리언 상태에 가입하여 재렌더 빈도를 줄입니다.
현재 상태 값을 기준으로 상태를 업데이트할 때는 상태 변수를 직접 참조하지 말고 setState의 기능 업데이트 형식을 사용하세요. 이는 오래된 폐쇄를 방지하고 불필요한 폐쇄를 제거합니다
값비싼 초기 값을 위해 함수를 `useState`에 전달하세요. 함수 형식이 없으면 값이 한 번만 사용되더라도 초기화기는 모든 렌더링에서 실행됩니다.
계산 전에 조기 반환을 가능하게 하기 위해 값비싼 작업을 메모화된 구성 요소로 추출하세요.
UI 응답성을 유지하기 위해 빈번하고 긴급하지 않은 상태 업데이트를 전환으로 표시합니다.
Next.js의 `after()`를 사용하여 응답이 전송된 후 실행할 작업을 예약하세요. 이렇게 하면 로깅, 분석 및 기타 부작용으로 인해 응답이 차단되는 것을 방지할 수 있습니다.
**영향: 미디엄(선택 사항 영향 설명)**