SvelteKit ломается не в коде, а на границе SSR, cookies и данных
За неделю в репах чаще всего всплывают не «ошибки фреймворка», а три места: загрузка данных в load, доступ к request-local state и несовпадение server/client поведения. Если держать в голове только UI, потом внезапно ловишь странные редиректы, пустые страницы и hydration mismatch.
Что проверять в первую очередь:
— всё, что зависит от пользователя, читать на сервере, а не в компоненте;
— cookies, headers и auth не тянуть через глобальные синглтоны;
— в load отдавать только то, что реально нужно странице, иначе раздуваешь SSR;
— браузерные API трогать только после mounted-проверки или в onMount.
Отдельная ловушка — form actions и промежуточные состояния. Если после сабмита страница должна обновить данные, не пытайся вручную синхронизировать половину стора: проще вернуть данные через действие и пересобрать страницу через invalidate, чем лечить рассинхрон по кускам. Это же относится к edge-case с ошибками: лучше явно отдавать статус и сообщение, чем маскировать всё редиректом.
Ещё одно правило: если логика нужна и на сервере, и в браузере, вынеси её в чистую функцию без зависимостей от runtime. Тогда SvelteKit остаётся простым: сервер отвечает за доступ и данные, клиент — за интерактивность.
Tracker Lab
@tracker_lab
SvelteKit ломается не в коде, а на границе SSR, cookies и данных
Этот пост опубликован в Telegram-канале Tracker Lab. Подписаться можно по ссылке: @tracker_lab.