[React] CustomHook ๐Ÿ‘‰ useTitle

https://nomadcoders.co ์—์„œ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ ์ž…๋‹ˆ๋‹ค.

1. useTitle ์ด๋ž€?

์ด๊ฑฐ ๋ฐ”๋€Œ๊ฒŒ ํ•˜๋Š” ๊ฒƒ!

2. useTitle ์ž‘์„ฑ

import React, { useEffect, useState } from "react";

const useTitle = (initialTitle) => {
  const [title, setTitle] = useState(initialTitle);
  const updateTitle = () => {
    // index.html์— ์žˆ๋Š” title ํƒœ๊ทธ
    const htmlTitle = document.querySelector("title");
    htmlTitle.innerText = title;
  }
  // ํƒ€์ดํ‹€์ด ๋ณ€๊ฒฝ๋  ๋•Œ updateTitle
  useEffect(updateTitle, [title]);
  return setTitle;
}

export default useTitle;

3. useTitle ์‚ฌ์šฉ

  • setTimeout๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
const App = () => {
  const titleUpdater = useTitle("Loading...");
  setTimeout(() => titleUpdater("Home"), 5000);

  return (
    <div className="app">
    	hellow
    </div>
  ) 
}

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ