svelte - 在 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
上下文中提供isServer
和isClient
区分。有一个sapper
吗?
解决方案
我相信某些变量(例如process.browser
或全局window
变量)仅在客户端可用,因此您应该能够使用这些变量来确定您的代码是在客户端还是在服务器上运行。
在常规 <script>...</script>
标签中,您还可以使用 Svelte 的onMount
生命周期函数来执行仅在客户端上运行的代码(即,当组件实际安装时)。
推荐阅读
- databricks - 无法通过 Databricks 上的本地文件 API 访问文件
- dc.js - 使用 dc.js 在折线图中未绘制某些点
- angular - 查找 Angular 框架生成的 CSS
- asynchronous - 在 Flutter 中显示应用程序版本、操作系统版本和型号
- excel-formula - Excel 中 SUMPRODUCT() 中的数组常量
- c - 哪个更好:单个 BAO 或多个 BAO
- r - Error in calculating standard error: (list) object cannot be coerced to type 'double'
- reporting-services - 基于参数选择的 SSRS 报表动态分页
- python - 我们可以在列表中找到素数吗?
- amazon-web-services - 除非执行 /index,否则 aws 静态网站 SSL 将无法工作