nuxt fetch $fetch useFetch 等使用方式区别

大概记录自己使用时的疑惑

fetch 用于server api的代理请求 属于服务器端的请求 官方apis: nuxt.com/docs/4.x/ge...

rust 复制代码
// 文件是在 server/api 目录下
const response = await fetch('https://www.otter-data.com/api/blogsList', {
        cache: "no-cache", //不缓存
    })
const json = await response.json()
return json

$fetch 用于客户端用户发起请求

例如 用户点击后需要刷新列表 官方介绍: nuxt.com/docs/4.x/ap...

javascript 复制代码
//app/pages/blogs/index.vue
const refresh = () => {
  const {data} = await $fetch('https://www.otter-data.com/api/blogsList', {
    method: 'GET',
    credentials: "include",
  })
  console.log('list:', data.value)
}

useFetch 页面加载时 如果需要预渲染那么就用它 还有个 useAsyncFetch也可以

如果想在服务端渲染文章而不是在客户端

官方介绍: nuxt.com/docs/4.x/ap...

php 复制代码
const {data} = await useFetch('https://www.otter-data.com/api/blogsList', {
    method: 'GET',
    credentials: "include",
  })

useAsyncFetch 和 useFetch 个人感觉没什么区别,只是增加了更细的控制 组合 $fetch使用 例如: 自定义缓存key, 是否在服务端进行发送请求, 是否监听参数改变发起请求等参数

官方说明: nuxt.com/docs/4.x/ap...

我只是在文章详情使用,因为需要缓存,同时不能因为缓存导致内容变更却未生效问题

javascript 复制代码
const { data } = await useAsyncData(`article-${uuid}`, () =>
    $fetch(`/api/detail?article_id=1}`, {
      method: 'GET',
      credentials: 'include',
    })
)
相关推荐
驳是33 分钟前
代码洁癖患者会喜欢的几款 CLI 小工具
前端
Csvn35 分钟前
🛋️ requestIdleCallback:把非关键任务塞进浏览器的"空闲时间",告别卡顿
前端
江华森36 分钟前
从 fork 到协程:一次完整的操作系统并发编程实操
前端·程序员
四千岁38 分钟前
稀疏向量BM25Retriever不支持中文怎么办?jieba来帮忙
前端·javascript·后端
这是个栗子41 分钟前
【JS代码分析】前端鉴权基础:Token 的本地存储与状态重置实践
开发语言·前端·javascript
颜进强42 分钟前
14 - OpenSpec 老页面改造骨架:定位 + 增量 + 回归三件套
前端·后端·ai编程
做前端的娜娜子43 分钟前
async/await 错误处理:try...catch vs .catch() 完全指南
前端·面试·掘金·金石计划
半个落月1 小时前
React 性能优化入门:用 memo 避免无关的子组件重复渲染
前端·react.js
北城笑笑1 小时前
Server 18 ,Nginx + Vite 前端部署排错实战:从 `/api/gpt/chat` 404 到 9012 后端服务的完整定位过程
linux·运维·前端·nginx·ubuntu·vue
江华森1 小时前
从抓包到嗅探:用 C 语言把《计算机网络》第 9-13 章全部跑一遍
前端