如何在SvelteKit中以编程方式进行路由? [英] How to route programmatically in SvelteKit?

查看:16
本文介绍了如何在SvelteKit中以编程方式进行路由?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能够管理我的SvelteKit应用的历史记录,同时确保SvelteKit的整个路由系统不会受到任何影响。

类似:

function routeToPage(route: string) {
   router.push(`/${route}`) // equivalent of this function
}

推荐答案

感谢SvelteKit Discorde中的Theo回答我自己的问题:

使用https://kit.svelte.dev/docs#modules-$app-navigation

import { goto } from '$app/navigation';

function routeToPage(route: string, replaceState: boolean) {
   goto(`/${route}`, { replaceState }) 
}

replaceState == true将替换该路线,而不是添加到浏览器历史记录中。因此,当您单击"上一步"时,您将不会返回到您来自的路线。

要返回,请使用History API

import { goto } from '$app/navigation';

function goBack(defaultRoute = '/home') {
  const ref = document.referrer;
  goto(ref.length > 0 ? ref : defaultRoute)
}

这篇关于如何在SvelteKit中以编程方式进行路由?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆