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


    😊最近在开发基于nuxt3.0的项目,看了官网的网络请求,感觉不太适合,就自己基于官网的useFetch()方法封装了一个网络请求,下面开始实现封装。

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

    我选择在composables目录中新建http.tscomposables是官方默认的插件目录,官方描述:Nuxt 3使用composables/目录使用auto-imports自动将Vue组合导入到应用中!

    👇封装代码如下:

    /**
    *  nuxt项目目录/composables/http.ts
    */
    //  基于useFetch()的网络请求封装
    
    //全局基础URL
    const BASEURL: string = "http://127.xxx.xxx:3000";  //全局后台服务器请求地址
    
    //定义ts变量类型接口
    interface HttpParms {
        baseURL?: string,  //请求的基本URL,即后台服务器地址,(若服务器请求地址只有一个,可不填)
        url: string,      //请求api接口地址
        method?: any,   //请求方法
        query?: any,       //添加查询搜索参数到URL
        body?: any         //请求体
    }
    
    /**
     * 网络请求方法
     * @param obj 请求参数
     * @returns 响应结果
     */
    export const http = (obj: HttpParms) => {
        const res = new Promise<void>((resolve, reject) => {
            useFetch(
                (obj.baseURL ?? BASEURL) + obj.url,
                {
                    method: obj.method ?? "GET",
                    query: obj?.query ?? null,
                    body: obj?.body ?? null,
                    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)
                    },
                    onResponseError({ request, response, options }) {
                        // 处理响应错误
                    }
                },
    
            )
        })
        return res;
    
    }
    
    

    🚀第二步:调用封装

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

    
    
    
    
    

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

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

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

  • 相关阅读:
    数据分析必备:6大步骤+5大类型+2大分析方法
    【牛客网刷题】(第四弹)多道中等难度题,早日拿offer,快来看看
    使用docker搭建owncloud && Harbor && 构建镜像
    ElasticSearch高阶操作
    巧用网络分析仪的校准
    Python基础
    LeetCode 1123. Lowest Common Ancestor of Deepest Leaves【树,DFS,BFS,哈希表】1607
    基于蒲公英优化算法的函数寻优算法
    0.网络是怎么连接的 --- 前言
    Kubernetes 生产化集群管理 操作系统选择
  • 原文地址:https://www.cnblogs.com/bokemoqi/p/17385380.html