inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[React 2부] 고급 주제와 훅

[2.1장 컨택스트] 2.1.3 컨택스트

렌더 프롭 관련하여 질문드립니다

183

ccccssung

작성한 질문수 5

0

컨텍스르를 설계하실 때

캡처.PNG

const Consumer = ({childeren } => <>{children(emiiter.get())}</>) 설명하시면서 렌더프롭이라고 설명하셨습니다.

그 이후 Count 설계하실 때

캡처.PNG

{(value) => <div>{value.count}</div>} 라고 적으셨는데 렌드 프롭에 대한 설명이 없으셔서 정확히
어떻게 렌더링되는지 궁금합니다!! 정확한 원리를 자세히 모르겠습니다

react React-Context react-hooks react-router react-component

답변 2

0

김정환

컴포넌트의 역할을 1) 상태 관리와 2) 리액트 앨리먼트 관리라고 볼 수 있는데요.

이런 경우도 있을 것 같습니다. 상태를 관리하지만 리액트 앨리먼트는 다른 경우. 컴포넌트가 상태 관리하는 역할만 하는 거죠.

이러한 상황은 리액트 컨택스트에서도 마찬가지인데요.

  • 이벤트 에미터의 상태는 관리하지만 이 값을 가지고 렌더링하는 로직은 외부에 두고 싶습니다.

  • 컴포넌트가 직접 앨리먼트를 만들어 렌더링 하지 않고 외부로 위임할 때 리액트 앨리먼트를 반환하는 함수를 프롭으로 사용할수 있는데요.

  • 이를 렌더 프롭이라고 부릅니다.

 

아래 AI 답변과 리액트 문서를 참고하시면 도움이 되실겁니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. ccccssung님께서 React의 렌더 프롭(Render Props) 개념과 그 사용 방법에 대해 궁금해하시네요.

렌더 프롭(Render Props)은 React에서 컴포넌트를 재사용하는 패턴 중 하나로, 함수형 컴포넌트에서 함수로서 자식 요소(children)를 받는 경우를 말합니다. 즉, 자식 컴포넌트에 넘겨주는 함수형 프로퍼티로 state나 다른 데이터를 관리하는 패턴입니다.

질문에서 보신 코드 부분을 간단히 설명하겠습니다:

  1. 기본 구조: Consumer 컴포넌트는 자식 요소로 함수(children)를 받아 해당 함수로 데이터를 전달합니다. 이는 상태나 데이터를 함수 형태로 내려보내는 방식입니다.

    const Consumer = ({children}) => <>{children(emitter.get())}</>;
    

    여기서 children은 함수로서 emitter.get()으로부터 얻은 값을 매개변수로 받습니다.

  2. Count 컴포넌트의 예시:

    {(value) => <div>{value.count}</div>}
    

    이 부분에서는 countContext.Consumer 안에서 사용자 정의 함수가 호출됩니다. value는 컨텍스트로부터 전달된 데이터이며, 이 데이터를 가지고 <div>{value.count}</div> 요소를 렌더링합니다.

이 패턴의 목적은 재사용성과 코드의 명확성을 높이는 데 있습니다. 컨텍스트를 통해 데이터를 전달할 때, 해당 데이터가 변경될 때마다 의도한 컴포넌트를 렌더링할 수 있도록 설계할 수 있습니다. 렌더 프롭을 사용하면 부모 컴포넌트는 데이터를 관리하고, 자식 컴포넌트는 데이터를 기반으로 UI를 구성할 수 있습니다.

렌더 프롭에 대한 자세한 설명은 React 공식 문서의 “렌더 프롭” 항목을 참조하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 기존 답변을 참고하여 유사한 설명을 제공하고 있습니다. ✨
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

잘못된 useEffect 사용?

1

65

2

useEffect 의존성 질문

1

57

2

orderableProductItem 에 관하여...

0

56

2

강의 자료, 블로그, 깃 주소

0

63

1

React 훅 구현 원리와 실무 패턴 관련 질문 (useState, useEffect 순서 및 핸들러 구조)

1

104

2

pushState로 주소를 바꾸면 렌더링이 안 되는 이유가 궁금합니다.

1

87

2

FormControl 컴포넌트 사용시 htmlFor prop 값 넘길 때 중괄호 이유

1

123

1

dispatch 함수도 리렌더링 유발하지 않나요?

1

203

2

ProductItem에서 onClick = {onClick}을 달지 않아도 되는 이유

1

160

2

replaceState를 쓰지 않는 대안

1

196

2

setValue 메서드를 바인딩 해야 하는 이유

1

163

2

MyReact를 IIFE(즉시실행함수)로 설계하신 이유

0

208

2

[4.4장 메모이제이션 훅] 4.4.3 memo 참조 비교

0

129

1

useRef 관련하여 질문드립니다

0

152

2

[1.2장 상품목록 화면] 1.2.3 Button ...rest 관련 질문 드립니다.

1

395

2

[4.4장 메모이제이션 훅] 4.4.4 useCallback curried function에 관한 질문입니다.

1

317

2

[4.4장 메모이제이션 훅] 4.4.2 useMemo 에서 every 함수에 관한 질문입니다.

1

355

2

[4.3장 리듀서 훅] 4.3.7 활용 MyForm(풀이) 오타 제보 및 질문이 있습니다.

1

281

2

[4.1장 레프 훅] useRef관련 질문이있습니다.

1

334

1

[1.3장 주문 내역 화면] 1.3.5 Card 조합 질문 있습니다

2

284

1

[3.5장 컨택스트 훅] 3.5.2 useContenxt 에서 질문이 있습니다.

1

432

2

[1.3.6 상태정의] state 관련

1

259

1

[2.4장 다이얼로그 1] 2.4.5 withLayout(풀이) 에 관한 질문입니다.

1

272

1

[2.1장 컨택스트] 2.1.4 공급자와 소비자 / 에서 질문이 있습니다.

1

425

2