Routing Sapper中的模态路由

Routing Sapper中的模态路由,routing,svelte,sapper,Routing,Svelte,Sapper,我试图在Sapper中实现next.js示例中所做的工作 它所做的是,当点击一个链接时,新页面会以一种模式显示,而不是替换当前页面,并且URL会更新,以反映当前模式页面。它是在几个社交网络中实现的,比如instagram 在next.js示例中,通过使用动态href完成,如下所示: <Link href={`/?postId=${id}`} as={`/post/${id}`}> 如何在Sapper中实现它 谢谢您的时间。我是这样做的: 从'@sapper/app'导入{pr

我试图在Sapper中实现
next.js
示例中所做的工作

它所做的是,当点击一个链接时,新页面会以一种模式显示,而不是替换当前页面,并且URL会更新,以反映当前模式页面。它是在几个社交网络中实现的,比如instagram

next.js
示例中,通过使用动态href完成,如下所示:

<Link href={`/?postId=${id}`} as={`/post/${id}`}>

如何在Sapper中实现它


谢谢您的时间。

我是这样做的:


从'@sapper/app'导入{prefetch}
从“svelte”导入{onMount,onDestroy}
从“../components/Post.svelte”导入帖子
让道具
onMount(()=>{
window.onpopstate=函数(事件){
if(document.location.pathname=='/about'){
道具=空
}否则{
常量正则表达式=/\/blog\/([\w-]+)/
if(regex.test(document.location.pathname)){
handlePrefetch(document.location.pathname)
}
}
}
return()=>{
window.onpopstate=null
}
})
函数handleClick(事件){
event.preventDefault()
const clickedHref=event.currentTarget.href
如果(clickedHref==location.href)返回
const pathname=clickedHref.replace(location.origin.)。子字符串(1)
history.pushState(null',路径名)
HandleRefetch(路径名)
}
异步函数handlePrefetch(url){
const res=等待预取(url)
常数{branch}=res
props=分支[1]。props.post
}
函数handleClose(){
history.pushState(null,,“关于”)
道具=空
}
关于
关于此站点
这是“关于”页面。这里没什么

{#如果是道具} {/if}
我必须手动处理弹出状态事件(这样后退按钮仍然可以工作)。然后,我使用sapper
prefetch
函数并将生成的道具作为本地道具注入。然后我检查是否设置了任何道具,然后根据设置注入自定义HTML


“真实页面”只是一个包含

的sapper组件。您解决了这个问题吗?有更新吗?试图实现同样的目标。我真的怀疑这是不可能的。如果你真的想要它,你应该考虑在GithuB-> SappER中打开一个问题,为它建立社区支持,并为它贡献一个PR。我说,b/c我猜你需要一种不带_layout.svelte的呈现/获取页面的方法