·

Fetching data from App Router client component in Nextjs

发布时间:2024-07-20 18:10:43阅读量:488
转载请注明来源

App Router is a new feature of Next.js since Next.js 13. It works within the app directory of the application. However, compared to Page Router, Nextjs documentation is lacking sufficient illustrations. For example, in server component of App Router, you can directly call fetch to fetch data from api. But when it comes to fetching data in client component, the documentation just claiming that you need to call a Route Handler from a client component, and the other doc does not actually contain any such example.

There are two ways to fetch data on a client component in App Router. The most easiet one is to use a third-party library such as SWR. However, in this article, we will give you a short tutorial on how to fetch data on a client component using Route Handler.

First, create a new folder api in the app directory. Then depending on your requirement, you can also create a folder login in api. Next, to complete creating a Route Handler, create a new file route.js|ts in the login directory. Then your folder structure will like the following:

\app
   \api
      \login
          route.js|ts

Now, add the following to your route.js|ts:

export async function GET() {
    const res = await fetch('https://www.example.com/api/...', {
      headers: {
        'Content-Type': 'application/json',
      },
    })
    const data = await res.json()
   
    return Response.json({ data })
}

Finally, call the Route Handler you defined in a client component as follows:

"use client";

export default function Page({ children }: { children: any }) {
  fetch('/api/login')
  .then((res)=>
    res.json()
  )
  .then((data)=>{
    console.log(data)
  })
}

You can see that creating a Route Handler is indeed creating a new route and URL in your application. Then to use the Route Handler to fetch data, you just need to call the URL you defined. In other words, calling a Route Handler means calling its URL.

0 人喜欢

评论区

暂无评论,来发布第一条评论吧!

弦圈热门内容

小众开源工具分享——5分钟上手视频压缩神器:HandBrake

https://soft.kafan58.com/soft/261375.html ‌HandBrake 是一款跨平台开源视频转码软件‌,支持 Windows、Mac 和 Linux 系统,主要用于视频格式转换、压缩处理及多轨道音视频编码,最新版本为 v1.9.2(截至 2025 年)。‌核心功能与特点‌:‌多格式支持‌: 输入源:支持 DVD、蓝光、AVI、MKV、MP4、MOV 等常见格式。‌‌输出格式:MP4、MKV、WebM 等主流容器格式,兼容各类设备和播放器。‌‌高效编码与压缩‌: 集成 x264、H.265(HEVC)、VP9 等视频编码器,支持恒定质量(CRF)与平均码率(CBR)控制。‌‌可通过调整分辨率、帧率、比特率等参数压缩视频大小。‌‌高级功能‌: 批量转换、字幕嵌入、音轨选择、章节标记及视频滤镜(如裁切、旋转)。‌‌支持加密 DVD 处理和多任务并行转换。‌‌‌适用场景‌:‌格式转换‌:将不兼容的视频转换为 MP4/MKV 等通用格式。‌‌压缩优化‌:减少文件体积以节省存储或传输时间。‌‌专业编辑‌:自定义分辨率、帧率、字幕等参数,满足多样化需求。‌‌

6月10号 欧洲之旅最后一站:荷兰纳尔登

【🇳🇱6.10 纳尔登】 ​欧洲旅游最后一站,居留卡马上就到期了[裂开]特地来阿姆斯特丹附近观摩一下整个城镇都是棱堡的星型要塞城镇纳尔登。和阿维拉的城墙一样,纳尔登的棱堡结构也保存得非常完好,可以明确看到三角堡,幕墙,斜堤等。而且也是亲眼见到荷兰棱堡特有的与荷兰水线防御体系相结合的壕沟护城河设计。如今原有保存完好的堡垒已经彻底民用化,被用作健身房,餐厅,画室等。小镇几乎没有游客,甚至连本地人也寥寥无几,停满车的街道上空无一人,除了一座博物馆外几乎没有任何旅游业的痕迹(甚至博物馆的售票员老奶奶还特意给了我半票)。也就只有在没被商业化的街道上才能看到所谓古镇古城最真实的面貌了

6月6号-6月7号 荷兰鹿特丹

【🇳🇱6.6-6.7 鹿特丹】 ​突破模式-鹿特丹 ​大 获 全 胜 ​战地V鹿特丹地图圣地巡礼,又是一个我有好多好兄弟似在这里的地方()p3《我是谁》里面的成龙快乐楼()也是一个圣地巡礼,是的主要任务就是圣地巡礼来了 ​鹿特丹也让我有很强的回国的感觉,主要整体感觉非常现代(毕竟古建筑大部分都炸没了),看起来和国内大都市一样,但是没有国内的快节奏,不只是方块屋铅笔屋等标志性的景点,大部分建筑感觉都很有设计感却不违和 ​小孩堤防风车群不说了,太,美,了😭走在空无一人两边都是芦苇风车的小路上,远处是在吃草的奶牛和成排的野雁,密密麻麻的小雨铺面而来,再次感受到了在瑞士劳特布龙嫩漫步时那种放空大脑一个人立于天地间的平静,不过后面突然狂风暴雨又是另外一回事了[裂开]

6月7号 弦圈APP于高考首日的更新日志😀

这段时间虽然因为很多突发事情导致耽搁了APP的上架,但是我还是给弦圈APP进行了大量的修改和优化。新版的APP还是叫做V1.0版吧,新版APP主要变动如下:添加微信分享、QQ分享功能,方便用户分享弦圈内容。接上,添加圈子分享、文章分享、帖子分享、图片分享功能。其中圈子、文章、帖子分享包括微信好友分享、朋友圈分享、QQ好友分享、QQ空间分享。添加忘记密码功能。该功能原本只有Web端有,现在手机APP端补上。添加扫码登录功能。在弦圈Web端,用户可以通过APP扫码的方式进行登录。圈子中添加查看标签功能,相当于圈子内容的二次分类。该功能原本只有Web端有,现在手机APP端补上。写文章和提问题功能中的“添加词条”,原本只能选择原有词条,不能创建新词条。现在在这个地方允许用户快速新建词条。优化页面样式,修复部分机型导航栏遮盖问题(见 应用详情-注意事项)。值得一提的是该问题微信、QQ等APP都有😀。修复圈子中样式不改变以及样式错乱bug。修复APP端帖子与Web端帖子不兼容问题。修改APP开屏启动图案样式,之前的启动图案太小了😅,看得不舒服。目前只记得改过那么多东西了,就这10点改变,每一点都要 ...

数说心语 | 一直在出发

数说心语#一直在出发#亲爱的同学们你是否因为昨日事务的束缚明天前途的焦虑而停下了当下探索的脚步在此数院团学君为同学们推荐汪国真先生的《我喜欢出发》愿大家不要失去随时出发的勇气《我喜欢出发》汪国真我喜欢出发。凡是到达了的地方,都属于昨天。哪怕那山再青,那水再秀,那风再温柔。太深的流连便成了一种羁绊,绊住的不仅有双脚,还有未来。怎么能不喜欢出发呢?没见过大山的巍峨,真是遗憾;见了大山的巍峨,没见过大海的浩瀚,仍然遗憾;见了大海的浩瀚,没见过大漠的广袤,依旧遗憾;见了大漠的广袤,没见过森林的神秘,还是遗憾。世界上有不绝的风景,我有不老的心情。我自然知道,大山有坎坷,大海有浪涛,大漠有风沙,森林有猛兽。即便这样,我依然喜欢。打破生活的平静便是另一番景致,一种属于年轻的景致。真庆幸,我还没有老。即便真老了又怎么样,不是有句话叫老当益壮吗?于是,我还想从大山那里学习深刻,我还想从大海那里学习勇敢,我还想从大漠那里学习沉着,我还想从森林那里学习机敏。我想学着品味一种缤纷的人生。人能走多远?这话不是要问两脚而是要问志向;人能攀多高?这事不是要问双手而是要问意志。于是,我想用青春的热血给自己树起一个高远 ...