Home [React][CSS] useWindowDimensions 실시간 윈도우크기 Hook
Post
Cancel

[React][CSS] useWindowDimensions 실시간 윈도우크기 Hook

useWindowDimensions 를 알아보자.

react-native 에서는 윈도우크기가 매우 다양하다. 그렇기 때문에 변화하는 윈도우 크기를 감지해야하는데 , 이를 도와주는게 useWindowDimensions hook 이다.

하지만 리액트에서는 어떨까? 커스텀 훅을 만들어서 사용해야 할 것이다.

current size, 즉 현재 윈도우 사이즈를 알 수 있게 해주는 hook 이다.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import { useState, useEffect } from  "react";
// Define general type for useWindowSize hook, which includes width and height
interface Size {
	width: number | undefined;
	height: number | undefined;
	}

// Usage
function App() {
	const size: Size = useWindowSize();

	return (
		<div>
			{size.width}px / {size.height}px
		</div>
	);
}

// Hook
function useWindowSize() : Size {
	// Initialize state with undefined width/height so server and client renders match
	const [windowSize, setWindowSize] = useState<Size>({
		width: undefined,
		height: undefined,
	});

	useEffect(() => {
		// Handler to call on window resize
		function handleResize() {
			// Set window width/height to state
			setWindowSize({
				width: window.innerWidth,
				height: window.innerHeight,
			});
		}

		// Add event listener
		window.addEventListener("resize", handleResize);

		// Call handler right away so state gets updated with initial window size
		handleResize()

		// Remove event listener on cleanup
		return () => window.removeEventListener("resize", handleResize);
	}, []); // empty array ensures that effect is only run on mount

	return windowSize

참조

https://usehooks.com/useWindowSize/

This post is licensed under CC BY 4.0 by the author.

[TS] 타입스크립트 첫걸음 1편(tsconfig.json 설정하기)

[TS] 타입스크립트 첫걸음 7편(자바스크립트,프로토타입,타입스크립트)