영원히 흘러가는 강
Context api 본문
728x90
context를 이용하면 단계마다 일일이 props를 넘겨주지 않고도 컴포넌트 트리 전체에 데이터를 제공할 수 있습니다.
React 공식 문서에서 제공하는 context의 정의이다!
전역적으로 사용하기 위해 사용한다
우선 파일 구조로 보자면 아래와 같다
ㄴ src
ㄴcomponenets
ㄴAbout.js
ㄴProfile.js
ㄴstore
ㄴUsers.js
App.js
store
ㄴ Users.js
import React, { createContext } from "react"; // createContext import
export const Usercontext = createContext(); //createContext 생성
const UsersStore = (props) => {
const users = { //users 객체 생성
name: "ryu",
age: "77",
};
return (
<Usercontext.Provider value={users}> {props.children}</Usercontext.Provider>
// Usercontext.Provider로 감싸며 props 자식으로 값 내려줌
);
};
export default UsersStore;
App.js
import React from "react";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import About from "./components/About";
import Profile from "./components/Profile";
import UsersStore from "./store/Users"; //생성한 UsersStore import
const App = () => {
return (
<UsersStore> // UsersStore로 사용할 위치 감싸준다
<Router>
<Switch>
<Route path="/about">
<About />
</Route>
<Route path="/profile">
<Profile />
</Route>
</Switch>
</Router>
</UsersStore>
);
};
export default App;
componenets
ㄴAbout.js
import React, { useContext } from "react";
import { Usercontext } from "../store/Users"; //Usercontext import
const About = () => {
const mycontext = useContext(Usercontext); //mycontext 선언
return <div> {mycontext.name}</div>; //mycontext 객체 값 가져오기
};
export default About;
728x90
'리액트' 카테고리의 다른 글
react-redux (with. Hooks) (0) | 2021.06.09 |
---|---|
리덕스 장바구니 코드 뜯어보기 (0) | 2021.06.03 |
axios multi request (get 여러개) (0) | 2021.05.06 |
리액트 DOM 앨리먼트 innerHTML, dangerouslySetInnerHTML (0) | 2021.04.26 |
구조 분해 할당 (0) | 2021.03.03 |
Comments