Node.jsinstallnpm / yarninstallIDEinstall (visual studio code)Gitinstall- 터미널에
create-react-app명령어로 프로젝트 생성
npx create-react-app 프로젝트명
useState 는 가장 기본적인
Hook으로서, 함수형 컴포넌트에서도 가변적인 상태를 지니고 있을 수 있게 해준다.
만약 함수형 컴포넌트에서 상태를 관리해야 되는 일이 발생한다면 useState를 사용하면 된다.
사용 예시
import React, { useState } from 'react';
const Counter = () => {
const [count, setCount] = useState(0);
return (
<div>
<p>
현재 카운터 값은 <b>{count}</b> 입니다.
</p>
<button onClick={() => setCount(count + 1)}>+1</button>
<button onClick={() => setCount(count - 1)}>-1</button>
</div>
);
};
useEffect는 리액트 컴포넌트가 렌더링 될 때마다 특정 작업을 수행하도록 설정 할 수 있는
Hook이다.
사용 예시
const UnmountTest = () => {
useEffect(() => {
console.log('Mount!');
return () => {
// Unmount 시점에 실행되게 함
console.log('Unmount!');
};
}, []);
return <div>Unmount Testing Component</div>;
};
주로, 마운트 시에 하는 작업들은 다음과 같은 사항들이 있다.
언마운트 시에 하는 작업들은 다음과 같은 사항이 있다.
일반적인 React 데이터는 props를 통해서 부모에서 자식에게 전달 되지만, 어플리케이션 안의 여러 컴포넌트들에게 props를 전달해줘야 하는 경우 context를 이용하면 명시적으로 props를 넘겨주지 않아도 값을 공유할 수 있게 해주는 것이다.
데이터가 필요할 때마다 props를 통해 전달할 필요가 없이 context 를 이용해 공유한다
createContext
-context 객체 생성
Provider
-생성한 context를 하위 컴포넌트에게 전달
Consumer
-context의 변화를 감시
const ThemeContext = React.createContext();
function App() {
const theme = /* some theme data */;
return (
<ThemeContext.Provider value={theme}>
<Header />
<MainContent />
</ThemeContext.Provider>
);
}
function Header() {
const theme = useContext(ThemeContext);
// Header 컴포넌트에서 theme 사용
}
function MainContent() {
const theme = useContext(ThemeContext);
// MainContent 컴포넌트에서 theme 사용
}