Node.js
installnpm / yarn
installIDE
install (visual studio code)Git
install- 터미널에
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 사용
}