상수 선언, 어디에서 하시나요? #221
Replies: 3 comments
-
예시 1번의 경우는 여러 함수에서 범용적으로 쓰일 거 같아서 함수 밖이 맞다 고 생각합니다. 예시 2는 |
Beta Was this translation helpful? Give feedback.
-
예시 1) 예시 2) |
Beta Was this translation helpful? Give feedback.
-
제가 답변이 많이 늦었습니다. 상수를 어디에 둘지를 판단할때에는 범용성과 로직의 크기를 바탕으로 판단하면 좋겠네요. 의견 감사드려요! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
컴포넌트, 훅 또는 일반 함수에서 매직 넘버를 없애기 위해, 또는 고정된 객체나 배열을 기반으로 로직을 다루기 위해 상수를 선언해서 사용하는 경우가 많은데요.
이때 상수를 어디에 선언하시나요?
저는 상수는 컴포넌트와 별개라고 생각해서 보통 컴포넌트 외부에 작성해왔습니다.
상수가 컴포넌트 리렌더링 시에 재선언되어야 할까? 라고 했을 때 그렇지 않다고 생각했기 때문인데요.
(유틸 함수도 같은 이유로 컴포넌트 밖에 선언했었어요)
frontend-fundamentals를 읽고 이전의 코드들을 다시 살펴보다보니 상수가 컴포넌트 밖에 있어서 시점 이동이 일어난다는 걸 인지했습니다.
그리고 특정 함수에서만 사용하는 상수라면, 해당 함수가 생명을 다했을 때 이 상수도 생명을 다한게 아닐까? 라는 의문도 생겼습니다.
예시 1
첫번째로 유틸함수의 예시인데 이렇게 간단하게 매직넘버를 방지하기 위한 상수는 함수 안에 있는게 자연스럽게 읽어졌어요.
예시 2
두번째로는 제가
useReducer
를 사용할 때 많이 쓰는 방식인데, 액션과 초기값을 상수로 컴포넌트 밖에 선언합니다. 리듀서 함수도 마찬가지이구요.이 경우에는 상수와 리듀서 함수를 밖에 쓰는게 자연스러워 보여요. 컴포넌트와 독립적으로 선언 되어도 문제가 없고 리듀서 함수가 컴포넌트 안에 있다면 로직이 더 복잡해 보이겠죠.
42 votes ·
Beta Was this translation helpful? Give feedback.
All reactions