開始寫useWindowSize的測試吧
這篇應該比較簡單,應該大概可以自己寫出來了吧
我認為困難的點可能是如何模擬窗口
下面開始講解是怎麼模擬的
let resizeWindow = (x: number, y: number) => { ... };
: 這是一個箭頭函數,接受兩個參數,x
和y
,代表窗口的新寬度和高度。
window.innerWidth = x;
: 這行設定window
物件的innerWidth
屬性為x
。這會模擬改變瀏覽器窗口的寬度。
window.innerHeight = y;
: 這行設定window
物件的innerHeight
屬性為y
。這會模擬改變瀏覽器窗口的高度。
window.dispatchEvent(new Event("resize"));
: 這行會觸發一個名為"resize"
的新事件。這會模擬用戶調整窗口大小時瀏覽器會觸發的resize
事件,也就是我們在useEffect
監聽的resize
事件。