화면 크기에 따라서 이벤트를 걸어주고 싶다.

react에서도 window 객체를 사용해서 visualViewport.Width/height값을 가져온다.

아래는

window.visualViewport의 return 값

height: 920
offsetLeft: 0
offsetTop: 0
onresize: null
onscroll: null
pageLeft: 0
pageTop: 903
scale: 1
width: 1394

어랏 innerWidth/height도 있다.
차이점은...?


window.innerWidth 
window.innerHeight 

다른내용은 정리잘된 블로그를 참고하길...
간단히 정리하면

innerWidth : scroll bar를 포함한 화면영역

visualViewport.width: scroll bar를 제외한 화면영역

값은 얻어왔다.
그럼 화면크기 변화는 어떻게 감지할가?
addEventListener('resize' , ()=>{}) 를 사용해서 이벤트를 걸어준다.

아래는 React에서 사용할 때 예제이다.


  const [innerWidth, setInnerWidth] = useState(window.innerWidth);

  useEffect(() => {
    const resizeListener = () => {
      setInnerWidth(window.innerWidth);
    };
    window.addEventListener("resize", resizeListener);
  });

  console.log("innerWidth", innerWidth);
  
profile
React, React-Native https://darcyu83.netlify.app/

0개의 댓글