일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- React JS
- 프로그래밍 언어론
- 백준
- Java
- 리액트 훅
- useState
- 디자인 패턴
- useEffect
- 프로그래머스 자바
- 프로그래머스 완전탐색
- 프로그래머스
- react firebase
- 리액트
- 자바
- 컴퓨터 네트워크
- codesandbox
- 장고
- 코딩테스트 고득점 Kit
- 자바스크립트
- react
- vanillaJS
- 데이터모델링과마이닝
- 자바 공부
- 코틀린
- react hook
- NextJS
- design pattern
- 코딩테스트 고득점 Kit 완전탐색
- JavaScript
- websocket
Archives
- Today
- Total
기록하는 개발자
[React] React Hook-2.1 useEffect를 활용한 useTitle 본문
728x90
< App.js >
import React, { useEffect, useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
const useTitle = (initialTitle) => {
const [title, setTitle] = useState(initialTitle);
const updateTitle = () => {
const htmlTitle = document.querySelector("title");
htmlTitle.innerText = title;
};
useEffect(updateTitle, [title]);
return setTitle;
};
export default function App() {
const titleUpdater = useTitle("Loading...");
setTimeout(() => titleUpdater("Home"), 5000);
return (
<div className="App">
<div>hi</div>
</div>
);
}
< useTitle >
const useTitle = (initialTitle) => {
const [title, setTitle] = useState(initialTitle);
const updateTitle = () => {
const htmlTitle = document.querySelector("title");
htmlTitle.innerText = title;
};
useEffect(updateTitle, [title]);
return setTitle;
};
1.
const useTitle = (initialTitle) => {
const [title, setTitle] = useState(initialTitle);
- useTitle 함수 인자로 initialTitle을 받는다.
- useState를 initialTitle로 초기화한다. → title이 initialTitle로 초기화된다.
2.
const updateTitle = () => {
const htmlTitle = document.querySelector("title");
htmlTitle.innerText = title;
};
- updateTitle 함수 : title을 queryselector로 가져와 innerText를 (useTitle의 인자로 받은)initialTitle로 변경한다.
3.
useEffect(updateTitle, [title]);
return setTitle;
};
- useEffect를 사용해 [title] 이 변경되면 updateTitle 함수가 실행되도록 한다.
- setTitle 함수를 return 한다.
< 새로고침 한 페이지 >
- title에 "Loading..." 문구가 뜬다.
< 5초 후 화면 >
- title이 "Home" 으로 변경 됨
728x90
'Web > React' 카테고리의 다른 글
[React] React Hook-2.3 useConfirm과 usePreventLeave (0) | 2021.09.30 |
---|---|
[React] React Hook-2.2 useEffect를 활용한 useClick과 useRef (0) | 2021.09.30 |
[React] React Hook-2.0 useEffect (0) | 2021.09.30 |
[React] React Hook-1.2 useState를 활용한 useTabs (0) | 2021.09.29 |
[React] React Hook-1.1 useState를 활용한 useInput (0) | 2021.09.29 |