# Advanced Usage


svelte-spa-router is simple by design. A minimal router is easy to learn and implement, adds minimum overhead, and leaves more control in the hands of the developers.

Thanks to the many features of Svelte or other components in the ecosystem, svelte-spa-router can be used to get many more "advanced" features. These pages explain how to achieve certain results with svelte-spa-router beyond what's offered by the component itself.

- [Route wrapping](/advanced/route-wrapping.md), including:
  - [Dynamically-imported routes and placeholders](/advanced/route-wrapping.md#async-routes-and-loading-placeholders)
  - [Route pre-conditions](/advanced/route-wrapping.md#route-pre-conditions) ("route guards")
  - [Adding user data to routes](/advanced/route-wrapping.md#user-data)
  - [Static props](/advanced/route-wrapping.md#static-props)
- [Route events and callbacks](/advanced/route-events.md)
- [Querystring parsing](/advanced/querystring-parsing.md)
- [Route transitions](/advanced/route-transitions.md)
- [Nested routers](/advanced/nested-routers.md)
- [Route groups](/advanced/route-groups.md)
- [Restore scroll position](/advanced/restore-scroll-position.md)



- [Route wrapping](/advanced/route-wrapping.md)
- [Route events and callbacks](/advanced/route-events.md)
- [Querystring parsing](/advanced/querystring-parsing.md)
- [Route transitions](/advanced/route-transitions.md)
- [Nested routers](/advanced/nested-routers.md)
- [Route groups](/advanced/route-groups.md)
- [Restore scroll position](/advanced/restore-scroll-position.md)
