상태를 변경하는 컴포넌트라면 반드시 ... #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
Uh oh!
There was an error while loading. Please reload this page.
-
안녕하세요!
코드 관련 고민이 있어 FF Discussion 에 질문 남깁니다.
저는 상태를 변경하는 컴포넌트라면 반드시
value
와onChange
prop을 사용해야 한다는 입장인데요.여러분은 컴포넌트를 구현할 때 어떻게 정하시는지 궁금해요.
예를 들어, 저는 아래처럼 작성하는 걸 선호해요.
제가 value / onChange 를 선호하는 이유는 다음과 같아요.
인지 부담이 줄어든다.
코드베이스에 대한 사전 지식이 없어도, 해당 prop이 어떤 역할을 하는지 쉽게 파악할 수 있어요.
암시적인 동작을 줄일 수 있다.
Context API를 사용하지 않으므로 특정 컨텍스트에 종속되지 않아 재사용성이 높아져요.
컴포넌트의 책임을 명확히 할 수 있다.
prop 이름이 다양해지거나 Context API를 활용하면, 해당 컴포넌트가 자체적으로 상태를 가지는지, 외부에서 상태를 주입하는지 모호해진다고 생각해요.
value / onChange 를 사용하면 "이 컴포넌트는 상태를 관리하는 게 아니라, 주어진 상태를 UI에 반영하는 역할" 이라는 점이 명확해져요.
저는 요구 사항을 받으면 항상 아래처럼 구성하려고 해요.
혹시 다른 기준이나 의견이 있으신지 공유해주시면 감사하겠습니다!
28 votes ·
Beta Was this translation helpful? Give feedback.
All reactions