国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

NUXT3.0實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求二次封裝

這篇具有很好參考價(jià)值的文章主要介紹了NUXT3.0實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求二次封裝。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??最近在開發(fā)基于nuxt3.0的項(xiàng)目,看了官網(wǎng)的網(wǎng)絡(luò)請(qǐng)求,感覺不太適合,就自己基于官網(wǎng)的useFetch()方法封裝了一個(gè)網(wǎng)絡(luò)請(qǐng)求,下面開始實(shí)現(xiàn)封裝。

??第一步:新建http.ts文件,用于編寫封裝代碼

我選擇在composables目錄中新建http.ts。composables是官方默認(rèn)的插件目錄,官方描述:Nuxt 3使用composables/目錄使用auto-imports自動(dòng)將Vue組合導(dǎo)入到應(yīng)用中!

??封裝代碼如下:

/**
*  nuxt項(xiàng)目目錄/composables/http.ts
*/
//  基于useFetch()的網(wǎng)絡(luò)請(qǐng)求封裝

//全局基礎(chǔ)URL
const BASEURL: string = "http://127.xxx.xxx:3000";  //全局后臺(tái)服務(wù)器請(qǐng)求地址

//定義ts變量類型接口
interface HttpParms {
    baseURL?: string,  //請(qǐng)求的基本URL,即后臺(tái)服務(wù)器地址,(若服務(wù)器請(qǐng)求地址只有一個(gè),可不填)
    url: string,      //請(qǐng)求api接口地址
    method?: any,   //請(qǐng)求方法
    query?: any,       //添加查詢搜索參數(shù)到URL
    body?: any         //請(qǐng)求體
}

/**
 * 網(wǎng)絡(luò)請(qǐng)求方法
 * @param obj 請(qǐng)求參數(shù)
 * @returns 響應(yīng)結(jié)果
 */
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 }) {
                    // 設(shè)置請(qǐng)求報(bào)頭
                    options.headers = options.headers || {}
                    /**如果接口需求攜帶token請(qǐng)求,則可先自行使用官方的useCookie()方法設(shè)置Cookie存儲(chǔ)后,再使用useCookie()方法,取出token使用。如下例子:*/
                    //const token = useCookie('token')
                    //@ts-ignore
                    //options.headers.Authorization = token.value||null
                },
                onRequestError({ request, options, error }) {
                    // 處理請(qǐng)求錯(cuò)誤
                    console.log("服務(wù)器鏈接失敗!")
                    reject(error)
                },
                onResponse({ request, response, options }) {
                    // 處理響應(yīng)數(shù)據(jù)
                    resolve(response._data)
                },
                onResponseError({ request, response, options }) {
                    // 處理響應(yīng)錯(cuò)誤
                }
            },

        )
    })
    return res;

}

??第二步:調(diào)用封裝

接下來在test.vue中調(diào)用封裝,如下代碼:

<template>
    <div>
        測(cè)試頁(yè)面
    </div>
    <button @click="btn()">請(qǐng)求測(cè)試按鈕</button>
</template>

<script setup lang="ts">
//引入http.ts封裝的網(wǎng)絡(luò)請(qǐng)求方法
import { http } from '~/composables/http';

const btn = async () => {
    //定義請(qǐng)求參數(shù)
    const obj = {
        method: "POST",
        url: '/user/login',
        //"POST"方法傳參:
        body: {
            name: "測(cè)試",
            phone: "176xxxxxx1",
            password: "test123",
        },
        //"GET"方法URL傳參:
        // query: {
        //     name:"test"
        // }
    }
    //開始請(qǐng)求
    let res = await http(obj)
    console.log("請(qǐng)求結(jié)果:", res);
}

</script>

??第三步:成功?。?!接下來就可以看到請(qǐng)求結(jié)果了,我們可以打開控制臺(tái)查看:

NUXT3.0實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求二次封裝

至此,我們的nuxt3.0網(wǎng)絡(luò)請(qǐng)求的簡(jiǎn)單封裝就實(shí)現(xiàn)啦??????!

??????在這里給在nuxt3.0項(xiàng)目中使用ts的小伙伴一個(gè)小提示,注意整個(gè)項(xiàng)目中不要使用中文路徑哦~記住是完整項(xiàng)目路徑都不要有中文!否則會(huì)報(bào)錯(cuò)!文章來源地址http://www.zghlxwxcb.cn/news/detail-437317.html

到了這里,關(guān)于NUXT3.0實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求二次封裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Nuxt3】modules目錄和nuxt3模塊的簡(jiǎn)單介紹

    【Nuxt3】modules目錄和nuxt3模塊的簡(jiǎn)單介紹

    記錄下nuxt3項(xiàng)目中module的用法 使用 modules/ 目錄在應(yīng)用程序中自動(dòng)注冊(cè)本地模塊。 這是一個(gè)很好的地方,可以放置您在構(gòu)建應(yīng)用程序時(shí)開發(fā)的任何本地nuxt模塊。 nuxt模塊相當(dāng)于npm包,可以發(fā)布到npm社區(qū)中 在modules/ 目錄下的本地模塊,會(huì)自動(dòng)注冊(cè)模塊,無需在 nuxt.config.ts文件中

    2024年04月27日
    瀏覽(22)
  • 【Nuxt3】nuxt3目錄文件詳情描述:.nuxt、.output、assets、public、utils(一)

    【Nuxt3】nuxt3目錄文件詳情描述:.nuxt、.output、assets、public、utils(一)

    nuxt3的中文網(wǎng)站 上次簡(jiǎn)單介紹了nuxt3創(chuàng)建項(xiàng)目的方法和目錄文件大概用處。 這次詳細(xì)說下.nuxt、.output、assets、public、utils五個(gè)文件夾的用處。 Nuxt在開發(fā)中使用.nuxt/目錄來生成你的Vue應(yīng)用程序。 為了避免將開發(fā)構(gòu)建的輸出推送到你的代碼倉(cāng)庫(kù)中,你應(yīng)該將這個(gè)目錄添加到你的

    2024年01月18日
    瀏覽(20)
  • 【Nuxt】在 Nuxt3 中使用 Element Plus

    【Nuxt】在 Nuxt3 中使用 Element Plus

    在 nuxt.config.ts 中配置 類似寫 vue3 項(xiàng)目,可以導(dǎo)入組件,也可以直接使用組件 在 Nuxt 3 中集成 Element Plus 的步驟 20分鐘帶你入門Nuxt3

    2024年02月05日
    瀏覽(17)
  • Nuxt3如何新建項(xiàng)目

    Nuxt3如何新建項(xiàng)目

    1.新建一個(gè)文件目錄 nuxt-app 2.命令行cd到目錄下運(yùn)行 npx nuxi init nuxt-test 回車運(yùn)行下 nuxt-test是文件名自己隨意 3.再cd nuxt-test到目錄下 運(yùn)行npm install 4.運(yùn)行完成后 npm run dev 啟動(dòng)項(xiàng)目 顯示以下頁(yè)面 1.在app.vue根目錄同級(jí)新建pages文件夾 再新建一個(gè)index頁(yè)面(新建文件目錄參考官方文檔

    2024年02月13日
    瀏覽(20)
  • Nuxt3環(huán)境變量配置

    Nuxt3 正式發(fā)布還不到半年,在投入生產(chǎn)環(huán)境使用后,遇到了不少問題,很難找到合適的解決方案,其中環(huán)境變量配置就是其中一個(gè),之前一直未能解決,最近要上持續(xù)集成,無法繞過這個(gè)問題,所以花了點(diǎn)時(shí)間研究了一下,最終找到了解決方案,記錄一下。 面對(duì)一個(gè)新框架,

    2024年02月01日
    瀏覽(19)
  • nuxt3 如何監(jiān)聽路由變化?

    nuxt3 如何監(jiān)聽路由變化?

    2024年02月11日
    瀏覽(23)
  • nuxt3使用記錄一:框架摸索

    之前直接用的Vue3,后面為了seo,了解到Vue3用SSR渲染很復(fù)雜,甚至衍生了出nuxt3這個(gè)框架,這個(gè)框架在github已經(jīng)有50K star了,也已經(jīng)是個(gè)非常成熟的框架了,不過我感覺國(guó)內(nèi)的資料也不多,看來國(guó)內(nèi)接受新事物的速度依然很慢,大廠估計(jì)都自研了,小公司就用老方法PHP啥的。

    2024年04月10日
    瀏覽(22)
  • 一文搞懂Nuxt3基本用法

    一文搞懂Nuxt3基本用法

    在前后端分離出現(xiàn)之前,傳統(tǒng)的web頁(yè)面都是服務(wù)端渲染的,如JSP、PHP、Python Django,還有各種模板技術(shù)Freemarker, velocity,thymeleaf、mustache等等。其實(shí)這套技術(shù)都挺成熟的,也用了很多年。 但前后端分離出現(xiàn)后,帶來兩個(gè)好處: 工程上的分工,讓前端專門盯前端技術(shù),開發(fā)效率上

    2024年02月05日
    瀏覽(22)
  • Nuxt3重點(diǎn)特性使用舉例記錄

    Nuxt3重點(diǎn)特性使用舉例記錄

    小聊: 基于vue.js,用于SSR渲染解決SEO,但不僅限于此。不用于局限的眼光去看它,使用它會(huì)比原生vue3更加流暢舒適,性能也更高。在熟悉vue3的基礎(chǔ)上學(xué)習(xí)成不算高。另外,它完全支持vue3語法,相比于vue3,它改進(jìn)了vue3的一些功能,Nuxt3有一些“約定”,你可以理解為是一些

    2024年02月07日
    瀏覽(40)
  • 寶塔部署Nuxt3項(xiàng)目(https)

    寶塔部署Nuxt3項(xiàng)目(https)

    之前在服務(wù)器搭建的項(xiàng)目都是用http的,但是一般來說都要換成https;因?yàn)閔ttps比http更加安全,數(shù)據(jù)不再是明文傳輸,更不容易被攻擊/被第三方廣告光顧;所以就有了將http換成https的想法。 第一個(gè)需要升級(jí)的項(xiàng)目是我使用nuxt3重構(gòu)的博客項(xiàng)目,期間遇到了諸多問題,所以想記錄

    2024年02月04日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包