開始寫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事件。

