React - context_api

Hyunny ·2023년 9월 6일
0

React

목록 보기
2/3
post-thumbnail

🤍useContext

useContext(Context명) : 지정된 Context를 사용
=> 부모 컴포넌트에서 제공한 값을 꺼내쓸 수 있다.

import React, { useState , useContext } from 'react';
import UserContext from '../contexts/UserContext';
// UserContext.js 따로 만들어서 import 해줌  => Context 생성해서 전역에서 사용할 수 있게 하기 위해서!

const User = () => {

    // useContext(Context명) : 지정된 Context를 사용
    // -> 부모 컴포넌트에서 제공한 값을 꺼내쓸 수 있다
    const {user, temp} = useContext(UserContext); // user, temp
    // UserContext에서 user를 꺼내서 변수 user에 저장
    // UserContext에서 temp를 꺼내서 변수 temp에 저장

    console.log(user);
    console.log(temp);

    return(
        <ul>
            <li>{user.name}</li>
            <li>{user.email}</li>
        </ul>
    );
}


const Profile = () => {

    const [user, setUser] = useState(null);

    const print = () => {
        setUser({name : '김미영', email : 'my-kim@kh.or.kr'} );
    }
   
    const temp = '임시 변수';

    return(
        /* UserContext가 감싸고 있는 자식 컴포넌트에게
            Context API를 이용해서 user를 제공 
        */
        <UserContext.Provider value={ {user, temp} }>
            <div>
                {/* 삼항 연산자를 이용한 컴포넌트 렌더링 제어(조건부 렌더링) */}
                {user != null ? (

                    <>
                        <User/>
                        <button onClick={ () => {setUser(null)} }>개인 정보 숨기기</button>
                    </>
                    
                ) : (
                    <button onClick={print}>개인 정보 출력</button>
                )}

            </div>
        </UserContext.Provider>
    );
}

export default Profile;
profile
개발 learning ... 📝

0개의 댓글