상태를 변경하는 컴포넌트라면 반드시 ... #177
pumpkiinbell
started this conversation in
A vs B
Replies: 1 comment
-
작성해주신 예시를 보면 해당 props가 들어가는 컴포넌트가 왠지 terms를 조작하는 컴포넌트일 것 같아요... 🤔 그렇다고 하면 한 발 더 나아가서.. 저는 컴포넌트 props뿐만 아니라 다른 곳에서도 비슷한 논리로 이름을 짓는 편이에요. 물론 domain specific한 용어들은 적용하면 안되겠고, '일반적인' 속성일 경우는 이렇게 이름 짓는 게 좋은 것 같아요. 그런 '일반적인' 속성명이 중복되는 상황이 발생하면, 객체의 계층 구조가 올바르지 않다는 걸 알려주기도 해요. // ✅
type Post = {
id: string
// ...
author: Author
}
type Author = {
id: string
// ...
}
// ❌
type Post = {
postId: string
// ...
authorId: string
// ...
} |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
안녕하세요!
코드 관련 고민이 있어 FF Discussion 에 질문 남깁니다.
저는 상태를 변경하는 컴포넌트라면 반드시
value
와onChange
prop을 사용해야 한다는 입장인데요.여러분은 컴포넌트를 구현할 때 어떻게 정하시는지 궁금해요.
예를 들어, 저는 아래처럼 작성하는 걸 선호해요.
제가 value / onChange 를 선호하는 이유는 다음과 같아요.
인지 부담이 줄어든다.
코드베이스에 대한 사전 지식이 없어도, 해당 prop이 어떤 역할을 하는지 쉽게 파악할 수 있어요.
암시적인 동작을 줄일 수 있다.
Context API를 사용하지 않으므로 특정 컨텍스트에 종속되지 않아 재사용성이 높아져요.
컴포넌트의 책임을 명확히 할 수 있다.
prop 이름이 다양해지거나 Context API를 활용하면, 해당 컴포넌트가 자체적으로 상태를 가지는지, 외부에서 상태를 주입하는지 모호해진다고 생각해요.
value / onChange 를 사용하면 "이 컴포넌트는 상태를 관리하는 게 아니라, 주어진 상태를 UI에 반영하는 역할" 이라는 점이 명확해져요.
저는 요구 사항을 받으면 항상 아래처럼 구성하려고 해요.
혹시 다른 기준이나 의견이 있으신지 공유해주시면 감사하겠습니다!
18 votes ·
Beta Was this translation helpful? Give feedback.
All reactions