如何在 Sapper 的 script 模塊之外訪問 URL 參數

假設您正在使用 Sapper 建立一個 Svelte 應用程式,並且您有一個動態的頁面路由,例如 /routes/[id].svelte。 您想要獲取 URL 的動態部分(在此案例中是 id),並且您知道可以在元件的 <script context="module"> 段落中的 preload() 函數中獲取它: <script context="module"> export async function preload({ params }) { const { id } = params } </script> 但問題是,您需要在 preload() 之外使用它,以執行其他操作。 解決方式是從 preload 中返回它,並使用通常的 export * 語法將它定義為元件的 prop。 以下是一個示例: <script context="module"> export async function preload({ params }) { const { id } = params return { id } } </script> <script> export let id if (typeof window !...

如何在Sapper中重定向到URL

最近我在使用Svelte + Sapper構建的應用程序中遇到了一個需求,即在用戶訪問根域名/時,重定向到頁面URL為/spreadsheet/1,而不是顯示主頁。 於是我打開了src/routes/index.svelte文件,刪除了其中所有內容,並添加了以下代碼: <script context="module"> export async function preload(page, session) { return this.redirect(301, 'spreadsheet/1') } </script>