[React] useState / useReducer / Context API 복습

2022. 6. 29. 09:50·Stack/React

리액트 - 싱글페이지 애플리케이션 / 한 개의 페이지로 이루어진 애플리케이션

 

상태

useState

useState(초기값) => [ state, setState ]

useState(10) => return [ state, f ]   // state(상태)는 f로만 관리 가능

 

const stateArr =  useState(10);

const state = stateArr[0];

const setState = stateArr[1];

=

const [ state, setState ] = useState(10);   // 구조분해할당

 

 

 

useReducer

function reducer(state, action) {

        switch(action.type){

                case "CHANGE_USER":

                return {

                    ...state,

                    users: state.users.map(user=> user.id !== action.id)

                }               

        }

}

useReducer(함수, 초기값) => [ state, dispatch ]

dispatch(액션객체) => reducer를 실행

dispatch({

                type: "CHANGE_USER",

                id: 10,

})

 

 

 

props / Context API

App 컴포넌트(상태) -> Users 컴포넌트 -> UserList 컴포넌트

function onelete() {

                상태에서 유저 한명만 제거하는 함수

}

<Users usersArr = {usersArr}>

<UserList user = {user} />

<button> 누를 때 위의 함수가 실행되어야 함, 그러나 <button onClick = {onDelete}> 이렇게 해도 실행 X

 

프로젝트 안에서 전역적으로 사용할 수 있는 값을 관리

createContext(null); => context를 return -> 컴포넌트

const MyContext = createContext(null);

 

<MyContext.Provider value = "green">

                <App>

                                <Main/>

                </App>

</MyContext.Provider>

context값을 사용

 

useContext(컨텍스트 이름)

ex> const abc = useContext(MyContext) => green을 반환

'Stack > React' 카테고리의 다른 글

[React] Lamp 쇼핑몰 구현하기 1  (0) 2022.06.29
[React] API 연동하기 2  (0) 2022.06.29
[React] API 연동하기  (0) 2022.06.28
[React] Router / 중첩 라우팅  (0) 2022.06.28
[React] booklist  (0) 2022.06.27
'Stack/React' 카테고리의 다른 글
  • [React] Lamp 쇼핑몰 구현하기 1
  • [React] API 연동하기 2
  • [React] API 연동하기
  • [React] Router / 중첩 라우팅
7ingout
7ingout
  • 7ingout
    Hello, 7ingout world!
    7ingout
  • 전체
    오늘
    어제
    • 분류 전체보기 (205)
      • Project (5)
      • Stack (173)
        • React (40)
        • JavaScript (50)
        • TypeScript (14)
        • HTML (11)
        • CSS (31)
        • Spring (9)
        • PHP (15)
        • SQL (3)
        • Python (0)
      • ETC (9)
      • Design (13)
        • Illustrator (6)
        • Photoshop (7)
      • Articloid (4)
        • 7ingout (4)
  • 공지사항

    • ☻
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
7ingout
[React] useState / useReducer / Context API 복습
상단으로

티스토리툴바