SvelteKit navigation patch
npm install routel
Add the following values to svelte.config.js
import routel from "routel/plugin/index.js"
export default {
kit: {
vite: {
plugins: [routel()],
optimizeDeps: {
exclude: ["routel"],
},
ssr: {
noExternal: ["routel"],
},
},
},
}
Import goto
or resolve
to your .svelte component
import { onMount } from "svelte"
import { goto, resolve } from "routel"
// log "index"
console.log(resolve({ name: "index" }))
// log "blog/guide-to-sveltekit"
console.log(resolve(({
name: "blogSlug",
params: {
slug: "guide-to-sveltekit",
},
}))
// log "blog/edit/guide-to-sveltekit?role=admin"
console.log(resolve(({
name: "blog-edit-slug",
params: {
slug: "guide-to-sveltekit",
},
query: {
role: "admin",
},
}))
// log "blog/new#focus"
console.log(resolve(({
name: "blog_new",
hash: "focus",
}))
// Cannot call `goto` on the server
onMount(() => {
// goto "index"
goto({ name: "index" })
// goto "blog/guide-to-sveltekit"
goto({
name: "blogSlug",
params: {
slug: "guide-to-sveltekit",
},
})
// goto "blog/edit/guide-to-sveltekit?role=admin"
goto({
name: "blog-edit-slug",
params: {
slug: "guide-to-sveltekit",
},
query: {
role: "admin",
},
})
// goto "blog/new#focus"
goto({
name: "blog_new",
hash: "focus",
})
})
import routel from "routel/plugin"
// alias option for route name generator
routel({
alias: {
slug: "parameter",
},
})
// default alias
{
_: 'underscore',
$: 'variable'
}
index.svelte
named toindex
blog/index.svelte
named toblogIndex
blog-index
blog_index
blog/[slug].svelte
named toblogSlug
blog-slug
blog_slug
blog/edit/[slug].svelte
named toblogEditSlog
blog-edit-slug
blog_edit_slug
blog/delete/[$].svelte
named toblogDeleteVariable
blog-delete-variable
blog_delete_variable
blog/[category]/[id]-[slug].svelte
named toblogCategoryIdSlug
blog-category-id-slug
blog_category_id_slug