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',
    })
)
相关推荐
码上成长41 分钟前
GraphQL:让前端自己决定要什么数据
前端·后端·graphql
冴羽1 小时前
为什么在 JavaScript 中 NaN !== NaN?背后藏着 40 年的技术故事
前端·javascript·node.js
久爱@勿忘1 小时前
vue下载项目内静态文件
前端·javascript·vue.js
前端炒粉1 小时前
21.搜索二维矩阵 II
前端·javascript·算法·矩阵
合作小小程序员小小店2 小时前
web网页开发,在线%台球俱乐部管理%系统,基于Idea,html,css,jQuery,jsp,java,ssm,mysql。
java·前端·jdk·intellij-idea·jquery·web
不爱吃糖的程序媛2 小时前
Electron 应用中的系统检测方案对比
前端·javascript·electron
泷羽Sec-静安2 小时前
Less-9 GET-Blind-Time based-Single Quotes
服务器·前端·数据库·sql·web安全·less
pe7er2 小时前
用高阶函数实现递归:从匿名函数到通用递归生成器
前端·javascript
IT古董2 小时前
全面理解 Corepack:Node.js 的包管理新时代
前端·node.js·corepack
学习3人组2 小时前
清晰地说明 NVM、NPM 和 NRM 在 Node.js 开发过程中的作用
前端·npm·node.js