尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

NUXT4.0实现网络请求二次封装
📅 发布时间:2026/6/20 21:59:48

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

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

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

👇封装代码如下:

/**
*  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的小伙伴一个小提示,注意整个项目中不要使用中文路径哦~记住是完整项目路径都不要有中文!否则会报错!

时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下

作者:莫颀

出处:https://www.cnblogs.com/bokemoqi/p/19386135

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。

若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理解决。

相关新闻

  • Open-AutoGLM本地部署完整流程:从环境配置到成功推理(附详细命令)
  • “G”术时刻:南大通用GCDW云原生数据仓库重塑企业数据引擎
  • 支持多模型接入的LLM管理器——anything-llm深度测评

最新新闻

  • 还在手写INSERT?这个免费的Chrome插件可以直接把网页表格变SQL
  • 终极指南:快速掌握虚幻引擎资源查看器UE Viewer的完整教程
  • 3步永久保存微信聊天记录:WeChatMsg完整数据备份指南
  • 苏州吴江生日宴优选指南:海鲜宴席高口碑门店测评 - 速递信息
  • DigiForest:数字技术与机器人融合的智能林业管理新范式
  • 2026河北热镀锌钢格板工程采购全解析 源头工厂选型实操指南 - 速递信息

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号