# What's new in Svelte: December 2022

DevFeed: [What's new in Svelte: December 2022](<https://devfeed.tech/articles/what-s-new-in-svelte-december-2022-3070.md>)

Original publisher: [Read original article](<https://svelte.dev/blog/whats-new-in-svelte-december-2022>)

Author: Dani Sandoval

Published: 2022-12-01T00:00:00Z

Content type: news

Language: en

Sources: [Svelte blog](<https://devfeed.tech/sources/svelte-blog.md>)

Topics: [Svelte](<https://devfeed.tech/topics/svelte.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [changelog](<https://devfeed.tech/tags/changelog.md>), [svelte](<https://devfeed.tech/tags/svelte.md>)

## AI overview

This December 2022 update covers SvelteKit changes ahead of its 1.0 release, including navigation behavior, caching for data requests, redirects, preload handling, promises in hooks, routing terminology, serialization, prerendering, and compiler configuration changes. It also highlights several developer tools and products from the broader Svelte ecosystem.

## Source excerpt

SvelteKit 1.0 is just around the corner! With 99% of the milestone issues completed, there's a lot of new changes from the last month to cover... Let's get to it! What's new in SvelteKit Use the willUnload property to find out if the navigation will result the app being unloaded (full page reload/closing/leaving to another page). (#6813) __data.json requests now allows for caching while ensuring we cache matching responses for all invalidation scenarios (#7532) Linking to <a name="hash"> tags is now supported (#7596) Throwing redirects in the handle hook is now supported (#7612) A fallback component will now be added automatically for layouts without one (#7619) The new preload function within the resolve hook determines what files should be added to the tag to preload it (Docs, #4963, #7704) version is now available via $app/environment (#7689, #7694) handleError can now return a promise (#7780) Breaking changes: routeId is now route.id (#7450) 'load' has been renamed to 'enter' and 'unload' to 'leave' in the beforeNavigate and afterNavigate methods. beforeNavigate is now called once with type 'unload' on external navigation and will no longer run during redirects (#7502, #7529, #7588) The redirect helper will now only allow status codes between 300-308 for redirects and only error status codes between 400-599 are allowed (#7767) (#7615, #7767) Special characters will now be encoded with hex/unicode escape sequences in route directory names (#7644) devalue is now used to (de)serialize action data - this is only a breaking change for everyone who fetches the actions directly and doesn't go through use:enhance (#7494) trailingSlash is now a page option, rather than configuration (#7719) The client-side router now ignores links outside %sveltekit.body% (#7766) prerendering is now named building, and config.kit.prerender.enabled has been removed (#7762) getStaticDirectory() has been removed from the builder API (#7809) The format option has been removed from generateMa