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

NUXT4.0实现网络请求二次封装

😊最近在开发基于nuxt4.0的项目,我之前的基于nuxt3.0的封装不太适合,下面开始基于nuxt4.0实现重新封装。

🚚第一步:新建http.ts文件,用于编写封装代码

我选择在composables目录中新建http.tscomposables是官方默认的插件目录。

👇封装代码如下:

/**
*  nuxt项目目录/composables/http.ts
*/
//  基于$fetch()的网络请求封装//全局基础URL
const BASEURL: string = "http://localhost:3000";  //全局后台服务器请求地址//定义ts变量类型接口
interface HttpParams<T = any> {baseURL?: string,  //请求的基本URL,即后台服务器地址,(若服务器请求地址只有一个,可不填)url: string,      //请求api接口地址method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS',   //请求方法query?: Record<string, any>,       //添加查询搜索参数到URLbody?: T         //请求体
}/*** 网络请求方法* @param obj 请求参数* @returns 响应结果*/
export const http = <T>(obj: HttpParams) => {const res = new Promise<T>((resolve, reject) => {$fetch((obj.baseURL ?? BASEURL) + obj.url,{method: obj.method ?? "GET",query: obj?.query ?? undefined,body: obj?.body ?? undefined,onRequest({ request, options }) {// 设置请求报头options.headers = options.headers || {}/**如果接口需求携带token请求,则可先自行使用官方的useCookie()方法设置Cookie存储后,再使用useCookie()方法,取出token使用。如下例子:*///const token = useCookie('token')//@ts-ignore//options.headers.Authorization = token.value||null},onRequestError({ request, options, error }) {// 处理请求错误console.log("服务器链接失败!")reject(error)},onResponse({ request, response, options }) {// 处理响应数据resolve(response._data as T)},onResponseError({ request, response, options }) {// 处理响应错误}},)})return res;
}

🚀第二步:调用封装

接下来在test.vue中调用封装,如下代码:

<template><div>测试页面</div><button @click="btn()">请求测试按钮</button>
</template><script setup lang="ts">
//引入http.ts封装的网络请求方法
import { http } from '~/composables/http';const btn = async () => {//定义请求参数const obj = {method: "POST",url: '/user/login',//"POST"方法传参:body: {name: "测试",phone: "176xxxxxx1",password: "test123",},//"GET"方法URL传参:// query: {//     name:"test"// }}//开始请求let res = await http(obj)console.log("请求结果:", res);
}</script>

🎉第三步:成功!!!接下来就可以看到请求结果了,我们可以打开控制台查看:

至此,我们的nuxt4.0网络请求的简单封装就实现啦🎉🎉🎉!

💡💡💡在这里给在nuxt4.0项目中使用ts的小伙伴一个小提示,注意整个项目中不要使用中文路径哦~记住是完整项目路径都不要有中文!否则会报错!

http://www.jsqmd.com/news/128546/

相关文章:

  • Windows也能跑AutoGLM?教你绕过官方限制实现本地一键部署
  • GBase 8s数据库PREPARE语句 分析
  • 为什么顶级AI团队都在悄悄研究Open-AutoGLM?真相令人震惊
  • 【Open-AutoGLM快速上手】:90%工程师忽略的3个高效用法
  • 医考题库怎么选?3招教你挑对“上岸神器”,附3大主流题库深度测评 - 品牌测评鉴赏家
  • GBase 8s数据库SAVEPOINT语句 分析
  • Open-AutoGLM本地部署完整流程:从环境配置到成功推理(附详细命令)
  • AI 原生应用开源开发者沙龙杭州站精彩回顾 PPT 下载
  • “G”术时刻:南大通用GCDW云原生数据仓库重塑企业数据引擎
  • Upwork全球自由职业岗位数据集2024年2-7月完整版-82万职位发布记录-时薪固定预算国家分布-远程工作市场研究与技能需求分析-覆盖职位标题、链接、发布时间、计费类型、时薪范围等核心维度
  • 支持多模型接入的LLM管理器——anything-llm深度测评
  • 2025年离心多级泵定做厂家权威推荐榜单:卧式多级泵/不锈钢多级离心泵/多级泵型号源头厂家精选 - 品牌推荐官
  • GBase 8s数据库扩展数据类型 分析
  • 微信已经转发的微信名片,无法重复转发添加?
  • 服务降级与熔断机制实战:让系统优雅地挂
  • 提升团队生产力:anything-llm在项目管理中的应用场景
  • 2025年度全国白刚玉定制行业口碑与实力综合排行榜,金刚砂/不锈钢灰/棕刚玉/磨料/精密铸造砂/黑碳化硅/铬刚玉/白刚玉白刚玉采购推荐榜单 - 品牌推荐师
  • char 指针:字符串
  • 别再裸写 Crontab 了!这个神器让我拥有了任务调度的“上帝”视角
  • 【独家深度解读】:Open-AutoGLM 2.0为何被称为“大模型中间件的终极形态”
  • 从入门到精通,智谱AI Open-AutoGLM使用全攻略,99%的人都不知道的8个隐藏功能
  • 2025中国十大AI数字员工方案商排名:业务流重构、交付周期与资源厚度深度对比(附避坑指南) - 资讯焦点
  • 高效办公利器:基于anything-llm的智能文档对话系统
  • 为什么头部企业都在抢用Open-AutoGLM?(三大核心优势揭示AI降本增效新范式)
  • 英国低龄留学,机构怎么选? - 博客万
  • 快手黑灰产业务层攻击:流程、工具与演示代码(仅用于安全研究与复习)
  • 做1688批发系统5年,被商品详情API坑到连夜改代码的实战手记
  • DAY 43
  • 云服务器安装宝塔面板教程
  • (9-3-02)智能编程助手(IDA Pro+VS Code+MCP):MCP-Plugin插件