在获取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是否有一个

解决方法

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

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

,

您是否尝试过捕捉错误

[
  {
    "name": "A","value": 1,"value2": 11
  },{
    "name": "2","value": 2
  },{
    "name": "3","value": 3
  },{
    "name": "4","value": 4
  },{
    "name": "5","value": 5
  },{
    "name": "6","value": 6
  },{
    "name": "7","value": 7
  },{
    "name": "8","value": 8
  },{
    "name": "9","value": 9
  },{
    "name": "10","value": 10
  },{
    "name": "J",{
    "name": "Q",{
    "name": "K","value": 10
  }
]

PS:我实际上在 svelte kit Docs

中找到了解决方案
let isServer;

try {
    let win = window;
    isServer = false;
} catch (e) {
    isServer = true;
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...