React
Custom Hooks
차돌박이츄베릅
2023. 7. 6. 12:06
반복되는 로직이나 중복되는 코드를 우리만의 훅, 즉 커스텀 훅을 통해서 관리할 수 있다.
리액트 훅을 이용해서 공통된 로직이나 기능을 별도로 분리한 훅을 말함❗
보통 src 폴더에 hooks 라는 폴더를 생성해서 커스텀 훅들을 보관.
커스텀 훅을 만들때 이름은 내 마음대로 해도 상관이 없으나,
파일의 이름 앞에 use 라는 키워드를 붙여줘야 함.
(src/hooks/useInput.js)
import { useState } from 'react';
const useInput = () => {
// 2. value는 useState로 관리하고,
// state
const [value, setValue] = useState('');
// 3. 핸들러 로직도 구현합니다.
// handler
const handler = (e) => {
setValue(e.target.value);
};
// 1. 이 훅은 [ ] 을 반환하는데, 첫번째는 value, 두번째는 핸들러를 반환합니다.
return [value, handler];
};
export default useInput;
(src/App.jsx)
import React from "react";
import useInput from "./hooks/useInput";
const App = () => {
// 우리가 만든 훅을 마치 원래 있던 훅인것마냥 사용해봅니다.
const [name, onChangeNameHandler] = useInput();
const [password, onChangePasswordHandler] = useInput();
return (
<div>
<input
type="text"
name="title"
value={name}
onChange={onChangeNameHandler}
/>
<input
type="text"
name="title"
value={password}
onChange={onChangePasswordHandler}
/>
</div>
);
};
export default App;