Hook
Hook 이란 함수 컴포넌트에서 상태관리 및 라이프사이클과 관련된 작업을 사용할 수 있도록 하는 리액트의 API이다.
이전에는 클래스 컴포넌트에서만 React의 라이플 사이클을 관리하고 사용할 수 있었는데 Hook의 등장으로 함수 컴포넌트 에서도 같인 기능의 작업을 수행할 수 있게 되었다.
React에서 제공하는 Hook중 useState, useEffect, useContext 등을 알아보자.
useState
상태를 관리하기 위해 사용되는 것으로 초기값을 인자로 받으며,
배열 형태로 현재 상태값과 해당 상태값을 업데이트 하는 함수를 반환한다.
예제
export default function Home() {
//useState를 이용하여 초기 값을 설정함
const [count, setCount] = useState(12);
const [step] = useState(3);
//변수를 setCount로 변경하고 지정함
const handleIncrement = () => {
setCount((count) => count + step);
};
const handleDecrement = () => {
setCount((count) => count - step);
};
useEffect
컴포넌트가 랜더링 된 후 (즉, DOM이 업데이트 된 이후)에 실행되는 함수로, 모든 랜더링시에 useEffect가 실행된다. 하지
만 의존성 배열(dependency array)를 이용하여 특정 State나 Props값이 변경될 때만 실행되도록 조정할 수 있다.
function Example() {
const [count, setCount] = useState(0);
// useEffect를 사용하여 count 상태값이 변경될 때마다 실행되는 효과를 만듬
useEffect(() => {
document.title = `You clicked ${count} times`;
}, [count]); // count 값이 변경될 때만 실행
return (
....
);
이처럼 useEffect를 이용하여 count의 값이 변경될때마다 document.title값이 변경되는 듯. 업데이트 하는 효과를 만드는
형식으로 사용한다. userEffect 마지막에 ,[count] 로 보이는 의존성 배열 덕분에 "count" 값이 변경될 때만 실행된다.
useContext
useContext는 컴포넌트간 데이터를 쉽게 전달하도록 도와준다.
React.createContext()로 생성한 context 객체를 이용하여 사용되며, 'useContext' 를 호출할 때 , 해당 컨텍스트 객체를
인자로 전달하면 현재 컨텍스트 값을 반환한다.
// createContext를 사용하여 컨텍스트 객체를 생성
const MyContext = React.createContext();
function MyComponent() {
// useContext를 사용하여 현재 컨텍스트 값을 가져옴
const contextValue = useContext(MyContext);
return <p>{contextValue}</p>;
}
function App() {
return (
// MyContext.Provider를 사용하여 하위 컴포넌트에 컨텍스트 값을 전달
<MyContext.Provider value="Hello World">
<MyComponent />
</MyContext.Provider>
);
}
React.createContext 를 사용하여 만든 'MyContext' 변수를 이용하여 하위 컴포넌트에 context값을 전달할 수 있었다.
'Front-End > React' 카테고리의 다른 글
[useEffect] React 컴포넌트 리랜더링 시키는방법 (게시글 아이템 불러오기) (0) | 2023.03.17 |
---|---|
(MVC, Flux, Redux) 애플리케이션 상태관리 (0) | 2023.03.07 |
CRA 와 VITE (0) | 2023.02.25 |
ECMAScript, 바벨(Babel) (0) | 2023.02.15 |
Props, props drilling이란? ( + key props) (0) | 2023.02.15 |