더북(TheBook)

Consumer와 Render Props로 Context의 값을 조회할 때보다 훨씬 코드가 깔끔하지요? 한번 두 코드를 함께 비교해봅시다.

useContext

// useContext Hook
function FeedsScreen() {
  const value = useContext(LogContext);
  return (
    <View style={styles.block}>
      <Text>{value}</Text>
    </View>
  );
}

Consumer와 Render Props

// Render Props
function FeedsScreen() {
  return (
    <View style={styles.block}>
      <LogContext.Consumer>
        {(value) => <Text>{value}</Text>}
      </LogContext.Consumer>
    </View>
  );
}

Consumer와 Render Props를 사용할 때는 Context의 값을 읽는 부분이 JSX에 있기 때문에 컴포넌트 로직 작성이 까다로울 수 있습니다. 반면 useContext Hook을 사용하는 경우에는 컴포넌트에서 JSX를 반환하기 전에 값을 조회할 수 있기 때문에 컴포넌트 로직 작성이 더욱 편합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.