首页 > 解决方案 > 在 fetch Sapper 上区分服务器端和客户端

问题描述

Sapper 使您能够在客户端和服务器端运行预加载。

<script context="module">
    export async function preload(page, session) {
        const res = await this.fetch(`blog.json`);
        const article = await res.json();
        return { article };
    }
</script>

如何区分服务器端调用和客户端调用?

Nuxt上下文中提供isServerisClient区分。有一个sapper吗?

标签: sveltesapper

解决方案


我相信某些变量(例如process.browser或全局window变量)仅在客户端可用,因此您应该能够使用这些变量来确定您的代码是在客户端还是在服务器上运行。

常规 <script>...</script>标签中,您还可以使用 Svelte 的onMount生命周期函数来执行仅在客户端上运行的代码(即,当组件实际安装时)。


推荐阅读