问题描述
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
中,上下文提供isServer
和isClient
进行区分。
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;
}