首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sveltekit:跨页面共享服务对象(例如配置的http客户端)

Sveltekit:跨页面共享服务对象(例如配置的http客户端)
EN

Stack Overflow用户
提问于 2021-11-17 08:34:51
回答 1查看 228关注 0票数 0

我正在移动我的应用从Svelte (原版)到Sveltekit多页应用程序(新的)。

在最初的应用程序中,我在顶部配置了一个http客户端,并使用以下方法放置上下文:

setContext(HTTP_CLIENT, httpClient)

现在整个应用程序可以使用

const httpClient = getContext(HTTP_CLIENT)

我这么做是因为我的应用程序可以用调试参数启动,而不是打开http请求日志记录。

我不清楚如何在Sveltekit中实现类似的操作,因为页面似乎不共享上下文。

我试着在会话中插入http客户机,如下所示:

代码语言:javascript
复制
import { session } from "$app/stores";
$session.httpClient = httpClient

我得到了:

Error: Failed to serialize session data: Cannot stringify arbitrary non-POJOs

所以$session应该是序列化的,好的。这是否意味着我需要放置用户在$session中提供的任何调试参数,并且每个页面都需要新实例化自己的http客户端?或者还有其他一些惯用的sveltekit方法来做到这一点?

我知道sveltekit有它自己的fetch,所以您可能想说“不要使用您自己的http客户机”,但是我的应用程序使用了许多不同的服务对象(例如graphql客户机),这些对象可以在调试(和其他)模式下配置,所以请不要关注我的示例是一个http客户机这一事实。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-17 19:20:32

解决这个问题的一种方法是将配置发送到顶级__layout文件中,在那里创建http客户端并存储在商店中。由于存储是跨所有页面共享的,因此客户端可以自由使用此存储。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70001078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档