내일이 인턴으로 첫 출근..!
오늘의 공부
벨로퍼트와 함께하는 모던 리액트 · GitBook
벨로퍼트와 함께하는 모던 리액트 본 강의자료는 패스트캠퍼스 온라인 강의에서 제공하는 리액트 강의에서 사용되는 강의 문서입니다. 이 튜토리얼은 여러분들이 JavaScript 의 기초를 잘 알고있
react.vlpt.us
위의 글을 참고하여 props까지 개념정리..도중 스톱. (사유: 졸림)
티스토리에서 임시저장하거나 업데이트하기 불편해서 노션에 넣음.
https://bright-bovid-f36.notion.site/React-71cf313d02f443aaaaaaf78fbc731261
React 공부
업데이트
bright-bovid-f36.notion.site
ContextAPI
ContextAPI를 적용하고자 하는 범위 내의 최상위 컴포넌트 파일의 컴포넌트 선언 위에 아래 코드 삽입.
(명칭은 Cont 든 A든 상관 없음. 맨 앞이 대문자이고 다른거랑 겹치지만 않으면 됨. 이 글에서는 Cont로 부르겠슴..)
export const Cont = React.createContext();
이 최상위 컴포넌트 안에 useState를 사용하여 초기값을 넣어주고 dispatch용 함수를 만들어줌.
const initialItems = {
one: "하나!",
two: ["둘", "셋", "넷"],
add: "문구를 변경해보자.",
};
const [item, setItem] = React.useState(initialItems);
const addItem = (newItem) => {
setItem({ ...item, add: newItem });
};
여기서 addItem 이라는 dispatch용 함수는 setState를 이용하여 state에서 add가 key 값인 value를 변경함.
이 최상위 컴포넌트의 return에서 하위 컴포넌트들을 <Cont.Provider></Cont.Provider>로 감싸고 value={{넘겨줄 것들}} 을 열린 태그 쪽에 넣어줌.
return (
<div>
<Cont.Provider value={{ item, addItem }}>
<ContextOne />
<ContextTwo />
</Cont.Provider>
</div>
);
여기에서는 state인 item과 dispatch용 함수인 addItem을 넘겨줬음.
하위 컴포넌트에서는 값을 이렇게 불러올 수 있음.
import React from "react";
import { Cont } from "../pages/ContextAPI";
const ContextOne = () => {
const { item } = React.useContext(Cont);
return (
<>
{item.one}
</>
);
};
export default ContextOne;
이러면 item 안에 들어있던 one 의 초기값인 "하나!"가 출력됨.
함수는 이렇게 사용할 수 있음.
import React from "react";
import { Cont } from "../pages/ContextAPI";
const ContextOne = () => {
const { item, addItem } = React.useContext(Cont);
const text = React.useRef();
const buttonClick = () => {
addItem(text.current.value);
};
return (
<>
{item.add}
<input ref={text} />
<button onClick={buttonClick}>출력</button>
</>
);
};
export default ContextOne;
이러면 input창에 타이핑을 하고 출력 버튼을 눌렀을 때 ContextAPI를 통해 가져온 addItem이 실행되어 Cont가 있던 최상위 컴포넌트 안의 state, 즉 item의 add의 값이 변함에 따라 자식 컴포넌트 안에서 출력하는 item.add 도 변경됨.
참고 : https://cocoon1787.tistory.com/801
[React] 리액트 Hooks : useContext() 함수 사용법 (전역 상태 관리)
🚀 Context 일반적으로 부모 컴포넌트에서 자식 컴포넌트로 props를 통해 데이터를 전달하는데, 만약 그 깊이가 깊어질수록 거쳐가야 하는 컴포넌트들이 많아지고 코드를 반복적으로 작성해야 하
cocoon1787.tistory.com
이분은 조금 다르게 사용하셨기에 다음에 테스트 예정.
https://react.vlpt.us/basic/22-context-dispatch.html
22. Context API 를 사용한 전역 값 관리 · GitBook
22. Context API 를 사용한 전역 값 관리 이번에 사용되는 코드는 다음 CodeSandbox 에서 확인 할 수 있습니다. 우리가 현재 만들고 있는 프로젝트를 보면, App 컴포넌트에서 onToggle, onRemove 가 구현이 되어
react.vlpt.us
오늘의 작업
ContextAPI 테스트
https://github.com/jjubbu/Try-React
GitHub - jjubbu/Try-React: 이것저것 테스트 해보는 원격저장소!
이것저것 테스트 해보는 원격저장소! . Contribute to jjubbu/Try-React development by creating an account on GitHub.
github.com
'TIL' 카테고리의 다른 글
[TIL] 22.01.18 (0) | 2022.01.18 |
---|---|
[TIL] 22.01.17 (0) | 2022.01.17 |
[TIL] 22.01.14 (0) | 2022.01.15 |
[TIL] 22.01.13 (0) | 2022.01.13 |
[TIL] 22.01.12 (0) | 2022.01.12 |