Я сделал приложение в Svelte и теперь хотел портировать его на SvelteKit. В моем приложении используются объекты window
и document
, но они недоступны в SSR. Во-первых, выбрасывал ReferenceError: window is not defined
, но я это исправил, проверив, запущено ли приложение в браузере. Но из-за этого мое приложение не работает.
Буду рад получить помощь.
Спасибо.
🤔 А знаете ли вы, что...
С Svelte можно создавать адаптивные интерфейсы для различных устройств и экранов.
Вы можете отключить рендеринг на стороне сервера с помощью хука handle
, определенного в src/hooks.js
:
export async function handle({ event, resolve }) {
return resolve(event, { ssr: false });
}
Можно даже сделать это условно, обычно проверив event
и приняв решение по запросу.
Если ваш вариант использования требует, чтобы все происходило на стороне клиента, отключение SSR имеет смысл. Но обратите внимание, что его отключение строго из-за кода не рекомендуется только для браузера — в этом случае обычно лучше выполнять код условно с проверками browser
и динамическим импортом только для зависимостей на стороне клиента. Я хотел бы изучить, почему ваше приложение перестало работать, прежде чем переходить к отключению SSR.