React/개념뽀개기
프로바이더를 단방향 데이터로 사용하는 경우
lamarcK
2025. 4. 20. 10:03
Q1. 만약에 내가 전달하려는 데이터를 매개변수로 설정하지 않으면 일방적으로 값을 전달하는 컴포넌트도 만들수 있긴하겠네? 그렇게도 쓰여?
네, 맞습니다! 그런 패턴을 "제어되지 않는 컴포넌트(Uncontrolled Component)" 또는 "단방향 데이터 흐름"이라고 할 수 있어요.
예시를 보여드릴게요:
// 일방적으로 데이터를 제공하는 컴포넌트
function DataProvider() {
const staticData = {
title: "고정된 제목",
items: ["항목1", "항목2", "항목3"]
};
return (
<DataContext.Provider value={staticData}>
{/* 여기서는 외부에서 데이터를 받지 않고 내부에서 정의된 값만 사용 */}
<div>
<h1>{staticData.title}</h1>
<ul>
{staticData.items.map(item => (
<li key={item}>{item}</li>
))}
</ul>
</div>
</DataContext.Provider>
);
}
실제 사용 사례들:
테마 제공자:
function ThemeProvider() { const theme = { primary: '#007bff', secondary: '#6c757d', success: '#28a745' }; return ( <ThemeContext.Provider value={theme}> {children} </ThemeContext.Provider> ); }
설정 제공자:
function ConfigProvider() { const config = { apiUrl: 'https://api.example.com', language: 'ko', version: '1.0.0' }; return ( <ConfigContext.Provider value={config}> {children} </ConfigContext.Provider> ); }
하지만 보통은:
- 유연성을 위해 props를 받는 형태를 선호
- 테스트하기 더 쉬움
- 재사용성이 높음
그래서 실무에서는 props를 받는 형태가 더 일반적입니다!