当前位置: 首页 > news >正文

(四)SvelteKit教程:调用外部 API 获取数据

(四)SvelteKit教程:调用 API

我们先按照如下的方式来构建api服务:

step 1:npm i json-serverstep 2:在根目录下新建 db.json 文件,内部写入如下内容:{"users": [{"id": 1,"name": "Alice","email": "alice@example.com"},{"id": 2,"name": "Bob","email": "bob@example.com"}]}step 3:在 package.json 中添加如下命令:"scripts": {"serve-json": "json-server --watch db.json --port 4000",...}step 4:
运行命令:npm run serve-json

至此,你可以通过 http://localhost:4000/users 来访问刚才创建的用户数据。

接下来,我们在 SvelteKit 项目中调用这个 API。

首先,我们在 /about 目录下面新建一个 +page.js 文件,内容如下:

export const load = async (loadEvent) => {const { fetch} = loadEvent;const title = "About Us Ming title";const response = await fetch("http://localhost:4000/users");const users = await response.json();return {title,users,};};

至此,我们就可以在 /about 页面中使用 users 数据了。我们在 /about/+page.svelte 文件中使用如下代码:

<script>export let data;const users = data.users;</script><div>about page ming - {data.title}<a href="/">Home page</a>{#each users as user}<p>{user.name}</p>{/each}</div>

这样,我们就完成了调用 API 的功能。

带参数的API

假设我们 /about 下面需要有带参数的 API,目录如下:

├── +layout.svelte
├── +page.svelte
├── about
│   └── [aboutID]
│       ├── +page.server.js
│       └── +page.svelte

比如我们需要访问 /about/1 那么如何将这个 1 传入到 API中,我们只需要修改 +page.server.js 就行,文件如下:

export const load = async (serverloadEvent) => {const { fetch, params, url, route} = serverloadEvent;console.log("About page load", params, url, route.id);const { aboutID } = params;const title = "New, from server";const response = await fetch(`http://localhost:4000/users/${aboutID}`);const users = await response.json();return { title,users,};};
对应

对应的 +page.svelte 如下:

<script>export let data;const user = data.users;
</script>user.name: {user.name}{user.email}

这样我们就可以获取 /about/1 的数据

http://www.lryc.cn/news/386759.html

相关文章:

  • 数据结构-分析期末选择题考点(排序)
  • Python:探索高效、智能的指纹识别技术(简单易懂)
  • 『SD』AI绘画,不会写提示词怎么办?
  • 搭建大型分布式服务(四十二)SpringBoot 无代码侵入实现多Kafka数据源整合插件发布
  • Python 学习路线及技巧
  • 计算机网络知识整理笔记
  • 练习 String翻转 注册处理 字符串统计
  • linux的常用系统维护命令
  • java:aocache 0.4.0 缓存控制机制
  • 试析C#编程语言的特点及功能
  • Textual Learning2 -- 使用时的小问题
  • CST--如何在PCB三维模型中自由创建离散端口
  • C++中的虚函数表结构框架
  • 【ES】--Elasticsearch的高亮模式
  • 使用matlab开发stm32总结,stm32-matlab常见的问题处理以及报错合集
  • 落石滑坡监测报警系统:创新保障高速公路安全
  • Linux开发讲课20--- QSPI
  • VMware ESXi 8.0U3 macOS Unlocker OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动
  • vuepress使用简介及个人博客搭建
  • c#文件读写
  • WIFI 企业级认证手段 EAP-TLS介绍
  • 【网络架构】keepalive
  • 【Dison夏令营 Day 03】使用 Python 创建我们自己的 21 点游戏
  • Workbench密码登录登录失败
  • 哈尔滨高校大学智能制造实验室数字孪生可视化系统平台项目的验收
  • 009、MongoDB的分片策略
  • go~缓存设计配合singleFlight
  • 多线程引发的安全问题
  • 在晋升受阻或遭受不公待遇申诉时,这样写是不是好一些?
  • LeetCode 2710.移除字符串中的尾随零:模拟