-
React useEffect 사용 title 변경하기Programming/React 2021. 4. 25. 23:55반응형
실습은 codesandbox를 이용했습니다.
app.js
import React, { useState, useEffect } from "react"; import "./styles.css"; export default function App() { return ( <div className="App"> <button>Home</button> <button>Content</button> <button>Setup</button> </div> ); }
예시로 각각의 button 을 클릭했을 시 그 페이지로 이동했다고 가정하고 웹 title을 변경하도록 하겠습니다.
const useTitle = () => { const [title, setTitle] = useState(null); const updateTitle = () => { const htmlTitle = document.querySelector("title"); htmlTitle.innerHTML = title; }; useEffect(updateTitle, [title]); return setTitle; };
우선 useTitle 함수를 작성하고 useEffect 를 이용하여 컴포넌트가 렌더링 된 이후에 updateTitle 을 실행하여 직접적으로 DOM에 접근하여 title을 변경시켜줍니다.
export default function App() { const changeTitle = useTitle(); return ( <div className="App"> <button onClick={() => changeTitle("Home")}>Home</button> <button onClick={() => changeTitle("Content")}>Content</button> <button onClick={() => changeTitle("Setup")}>Setup</button> </div> ); }
이제 useTitle에서 return 한 값 setTitle을 changeTitle 변수에 담아줍니다.
그리고 각각의 버튼에 onClick 이벤트로 changeTitle로 해당하는 title text를 넘겨줍니다.
'Programming > React' 카테고리의 다른 글
React Hooks 란 (2) 2021.05.02 React FadeIn 함수 만들기 (useRef, useEffect) (0) 2021.04.25 React 할 일 목록 만들기 ( TodoList ) 추가,수정,삭제,검색 (6) 2020.11.22 React window.confirm 기능 구현 (0) 2020.05.15 React 간단한 tab 만들어보기 (hook 활용) (0) 2020.05.13