Client configuration
Routify's client can be configured by passing options to the Router component.
Example
<script>
import { Router } from '@roxi/routify'
const config = {
queryHandler: {
parse: search => fromEntries(new URLSearchParams(search)),
stringify: params => '?' + (new URLSearchParams(params)).toString()
},
urlTransform: {
apply: url => `/my-base${url}`, //external URL
remove: url => url.replace('/my-base', ''), //internal URL
},
useHash: true
}
</script>
<Router {config} />
<script>
import { Router } from '@roxi/routify'
const config = {
queryHandler: {
parse: search => fromEntries(new URLSearchParams(search)),
stringify: params => '?' + (new URLSearchParams(params)).toString()
},
urlTransform: {
apply: url => `/my-base${url}`, //external URL
remove: url => url.replace('/my-base', ''), //internal URL
},
useHash: true
}
</script>
<Router {config} />
Options
Name | Type | Default value | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
queryHandler | object | shown in example | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Parses overloaded params to and from the URL query | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
urlTransform | object | { apply: x => x, remove: x => x } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Transforms URL to internal/external | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useHash | boolean | false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enable hash based navigation |
Disabling auto-scrolling
By default, Routify will scroll back to the top of the page after a route change. If you want to prevent this, you can add
data-routify="scroll-lock"to the element you don't want scrolled.
Example
<div data-routify="scroll-lock">
<!-- Content you don't want scrolled to the top. -->
</div>
<!-- Or on the body tag -->
<script>
document.body.dataset.routify = 'scroll-lock'
</script>
<div data-routify="scroll-lock">
<!-- Content you don't want scrolled to the top. -->
</div>
<!-- Or on the body tag -->
<script>
document.body.dataset.routify = 'scroll-lock'
</script>
Writing good documentation that is up-to-date is difficult. If you notice a mistake, help us out.