SvelteKit:将数据从 +Layout.svelte 传递到 +page.svelte SPA(静态)应用程序

问题描述 投票:0回答:1

我正在努力使用最新版本的 SvelteKit,可用的文档仅适用于 SSR,并且我正在开发一个 SPA(静态页面),那么,如何将数据从我的

+layout.svelte
传递到
+page.svelte
?.

文档说从

+page.js
加载功能(我已经设置了
export const ssr=false
,我知道
+page.js
是针对SSR的),但这在SPA模式下不起作用,如果我有
 load
从布局上看功能似乎不起作用。

另外我想从布局页面中的

+page.svelte
触发一个功能。

有什么想法吗?

这是我试过的:

<!-- +layout.svelte -->
<script>
    export function load() {
        return {
            data: { title: 'default title' }
        };
    }
    export let data;
</script>

//+page.svelte
<script>
    export let data;
    console.log(data.title); //undefined
</script>

文档上说不要用:

<script context="module">
,我也不想用商店,因为我觉得一定有更好的方法。

single-page-application sveltekit
1个回答
1
投票

加载函数属于随附文件

+layout.js
/
ts
,不在页面上。他们也不返回属性数据,返回的一切都是数据。请参阅文档

如果 SSR 被禁用,您可以事件返回一个可以从页面修改的商店。

要从数据中获取存储以便它可以与

$
-语法一起使用,
data
属性可以在页面上被解构:

export let data;
$: ({ title } = data);

您还可以创建一个商店并将其设置为布局中的context。然后页面可以获得所述上下文并与之交互。这允许双向交互。

如果内容需要响应(即更改)并且页面或布局需要更新,则有必要使用商店。

© www.soinside.com 2019 - 2024. All rights reserved.