개발일지

2회차 발표 본문

리액트 공식문서 스터디

2회차 발표

박수미/ 2024. 5. 31. 23:01

📌 useReducer

import { useReducer } from 'react';

function reducer(state, action) {
  // ...
}

function MyComponent() {
  const [state, dispatch] = useReducer(reducer, { age: 42 });
  // ...

 

 

📍매개변수

  • reducer
  • initialArg
  • 선택적 init

📍반환값

useReducer는 정확히 두 개의 값을 가진 배열을 반환합니다:

1. 현재 state. 첫 번째 렌더링 중에는 init(initialArg) 또는 (init이 없는 경우) initialArg로 설정됩니다.

2. state를 다른 값으로 업데이트하고 렌더링을 촉발할 수 있는 dispatch function.

* useReducer가 반환하는 dispatch 함수를 사용하면 state를 다른 값으로 업데이트하고 다시 렌더링을 촉발할 수 있습니다.

 

📍주의사항

useReducer 는 훅이므로 컴포넌트의 최상위 레벨 또는 자체 훅에서만 호출할 수 있습니다. 반복문이나 조건문 내부에서는 호출할 수 없습니다.

📌 사용법

1️⃣ 컴포넌트에 reducer 추가하기

import { useReducer } from 'react';

function reducer(state, action) {
  // ...
}

function MyComponent() {
  const [state, dispatch] = useReducer(reducer, { age: 42 });
  // ...

1. 이 state 변수의 현재 state. 처음에 제공한 초기 state로 설정됩니다.

2. 상호작용에 반응하여 이를 변경할 수 있는 dispatch함수.

 

화면에 표시되는 내용을 업데이트하려면 사용자가 수행한 작업을 나타내는 객체, 즉 액션을 사용하여 dispatch를 호출합니다.

function handleClick() {
  dispatch({ type: 'incremented_age' });
}

 그 다음 현재 state와 액션을 reducer함수에 전달합니다. Reducer는 다음 state를 계산하고 반

'리액트 공식문서 스터디' 카테고리의 다른 글

useLayoutEffect  (0) 2024.06.11
useEffect  (0) 2024.06.04
useRef  (0) 2024.05.30
useContext  (0) 2024.05.28
1회차 발표 useState, useReducer  (0) 2024.05.24