useTitle
문서의 제목을 업데이트 시켜주는 걸 담당하는 hook
import { useEffect, useState } from "react";
const useTitle = (initialTitle) => {
const [title, setTitle] = useState(initialTitle);
const updateTitle = () => {
const htmlTitle = document.querySelector("title");
htmlTitle.innerText = title;
};
useEffect(updateTitle, [title]);
return setTitle;
};
const App = () => {
const titleUpdater = useTitle("Loading...");
setTimeout(() => titleUpdater("youngseo"), 5000);
return (
<div className="App">
<div>Hi</div>
</div>
);
};
export default App;
- const htmlTitle () = document.querySelector("title") => document의 <title> 태그를 의미한다.
- useEffect (updateTitle, [title]) => 컴포넌트가 mount 될 때 upDateTitle 함수를 실행, title이 변하면 updateTitle 함수를 실행한다.
- titleUpdater가 어디선가 불리면 (titleUpdater는 현재 setTitle을 리턴 받았으므로) title의 상태를 변화시킬 수 있고 title의 상태가 변화하면 useEffect에 의해 updateTitle 함수가 다시 실행되어 <title> 태그의 text를 바꾼다.
- setTimeout(()=> titleUpdater("youngseo"), 5000); => 5000ms 후에 "youngseo" 로 document의 title이 바뀐다.
'스터디 > [노마드코더] 실전형 React Hooks' 카테고리의 다른 글
#5. useConfirm & usePreventLeave hook (0) | 2024.03.20 |
---|---|
#4. useClick hook (0) | 2024.03.20 |
#2. useTabs hook (0) | 2024.03.13 |
#1. useInput hook (0) | 2024.03.13 |
#0. Introduction (0) | 2024.03.13 |