From 067618d792fc085d5530e64dedb87a65de29f581 Mon Sep 17 00:00:00 2001 From: caadiq Date: Sun, 7 Jun 2026 16:14:06 +0900 Subject: [PATCH] =?UTF-8?q?perf(mobile-schedule):=20selectedDate=20?= =?UTF-8?q?=EC=B0=B8=EC=A1=B0=20=EC=95=88=EC=A0=95=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit storedSelectedDate가 없을 때 매 렌더 new Date()가 생성돼 다수 useMemo/useEffect가 재실행되고 날짜 스트립이 반복 scrollIntoView되던 문제를, useMemo로 참조를 안정화(값 의미는 동일). Co-Authored-By: Claude Opus 4.7 --- frontend/src/pages/mobile/schedule/Schedule.jsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/mobile/schedule/Schedule.jsx b/frontend/src/pages/mobile/schedule/Schedule.jsx index 2ce141d..de5d203 100644 --- a/frontend/src/pages/mobile/schedule/Schedule.jsx +++ b/frontend/src/pages/mobile/schedule/Schedule.jsx @@ -36,8 +36,12 @@ function MobileSchedule() { toggleCategory, } = useScheduleStore(); - // 선택된 날짜 (store에 없으면 오늘 날짜) - const selectedDate = storedSelectedDate || new Date(); + // 선택된 날짜 (store에 없으면 오늘 날짜). 매 렌더 새 Date 생성을 막아 + // 다수 useMemo/useEffect가 불필요하게 재실행되지 않도록 참조 안정화. + const selectedDate = useMemo( + () => storedSelectedDate || new Date(), + [storedSelectedDate] + ); const setSelectedDate = (date) => setStoredSelectedDate(date); const [isSearchMode, setIsSearchMode] = useState(false);