最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Axios在vue項(xiàng)目中的封裝步驟

 更新時(shí)間:2022年10月08日 10:56:27   作者:Richeneen?.  
Axios?是一個(gè)基于?promise?的網(wǎng)絡(luò)請(qǐng)求庫(kù),可以用于瀏覽器和?node.js,是一個(gè)第三方插件,第三方異步請(qǐng)求工具庫(kù),這篇文章主要介紹了Axios在vue項(xiàng)目中的封裝方法,需要的朋友可以參考下

1. 什么是Axios?

Axios 是一個(gè)基于 promise 的網(wǎng)絡(luò)請(qǐng)求庫(kù),可以用于瀏覽器和 node.js,是一個(gè)第三方插件,第三方異步請(qǐng)求工具庫(kù)

Axios的特點(diǎn):

  • 可以運(yùn)行在瀏覽器和node.js環(huán)境中
  • 基于promise,可以調(diào)用promiseAPI
  • 默認(rèn)發(fā)送的是get請(qǐng)求,默認(rèn)post請(qǐng)求發(fā)送的數(shù)據(jù)格式是JSON
  • 除了表單格式數(shù)據(jù),對(duì)請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù)可以自動(dòng)轉(zhuǎn)換JSON數(shù)據(jù)格式。
  • 可以對(duì)請(qǐng)求和響應(yīng)做攔截

2. 回顧Ajax

Ajax的特點(diǎn):

  • 異步的JavaScript和XML
  • 可以在瀏覽器中運(yùn)行,但是不可以在node.js環(huán)境下運(yùn)行
  • 請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù)需要手動(dòng)轉(zhuǎn)換格式
  • 請(qǐng)求頭也需要手動(dòng)設(shè)置

Ajax創(chuàng)建步驟:

    // 1.創(chuàng)建XMLHttpRequest實(shí)例
    let xhr = new XMLHttpRequest()
    // 2.打開一個(gè)連接
    xhr.open('請(qǐng)求方式get/post','請(qǐng)求地址')
    // 3.發(fā)送請(qǐng)求
    // 必要時(shí)還需設(shè)置請(qǐng)求頭格式:JSON/application/x-www-form-urlencoded
    xhr.setRequestHeader()
    // 必要時(shí)還需轉(zhuǎn)換請(qǐng)求數(shù)據(jù)格式:JSON.stringfy(參數(shù))/Qs.stringfy(參數(shù))
    xhr.send(請(qǐng)求參數(shù))
    // 4.接收響應(yīng)
    xhr.onreadystatechange=function(){
      // 判斷:請(qǐng)求是發(fā)送完成和請(qǐng)求是否發(fā)送成功
      if(xhr.readyState===4 && xhr.status===200){
        // 接收響應(yīng):必要時(shí)還要轉(zhuǎn)換響應(yīng)數(shù)據(jù)的格式 JSON.parse(xhr.response)
        console.log(xhr.response);
      }
    }

3. 回顧Promise

Promise是一種異步編程解決方案。Promise構(gòu)造函數(shù)接收兩個(gè)參數(shù):resolve和reject。resolve作為成功的回調(diào)函數(shù),reject作為失敗的回調(diào)函數(shù)。

  // 1.創(chuàng)建promise對(duì)象
        let p1=new Promise((resolve,reject)=>{
            // resolve,reject是回調(diào)函數(shù)
            // resolve函數(shù)是promise對(duì)象最終狀態(tài)為成功狀態(tài)
            //reject函數(shù)是promise對(duì)象最終狀態(tài)為失敗狀態(tài)
            
            //非異步
            //假設(shè)異步操作執(zhí)行成功,修改promise對(duì)象狀態(tài)為成功狀態(tài)
            if(3>2){
                resolve('success')
            }else{
                //假設(shè)異步操作執(zhí)行失敗,修改promise對(duì)象狀態(tài)為失敗狀態(tài)
                reject('error')
            }
        })
        //如何提供resolve和reject函數(shù)
       //在promise原型里有then和catch
        // 1.then方法表示的是成功之后的回調(diào),對(duì)應(yīng)resolve
        // 2.catch方法表示的是失敗之后的回調(diào),對(duì)應(yīng)reject
        p1.then((res)=>{
            console.log(res,'成功回調(diào)')
        }).catch((error)=>{
            console.log(error,'失敗回調(diào)')
        }).finally(()=>{
            console.log('最終執(zhí)行')
        })
		//如果then里面?zhèn)髁藘蓚€(gè)回調(diào)函數(shù),第一個(gè)代表成功之后的回調(diào),第二個(gè)代表失敗之后的回調(diào),分別代表resolve()和reject()
		p1.then((res)=>{
            console.log(res,'成功')
        },(err)=>{
            console.log(res,'失敗')
        });

4. Vue封裝Axios

Axios是一個(gè)基于promise的HTTP庫(kù),可以用在瀏覽器和node.js中。jQuery中也封裝了ajax機(jī)制,但是僅適用于瀏覽器。

功能特點(diǎn):

  • 在瀏覽器和node.js中皆可用
  • 自動(dòng)轉(zhuǎn)化請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù)格式為JSON數(shù)據(jù)格式
  • 可以做攔截請(qǐng)求和響應(yīng)攔截
  • 可以調(diào)用Promise的API
  • axios默認(rèn)發(fā)送請(qǐng)求為get方式,默認(rèn)數(shù)據(jù)格式為JSON格式

封裝步驟:

在項(xiàng)目中安裝axios:npm i -S axios創(chuàng)建封裝axios的文件夾并導(dǎo)入axios,根據(jù)項(xiàng)目所需創(chuàng)建axios API:

import axios from "axios";
import Qs from 'qs';
let qs= Qs;
// 創(chuàng)建axios實(shí)例對(duì)象
let instance = axios.create({
	baseURL:"http://121.199.0.35:8888",
	timeout:5000
});
// 請(qǐng)求攔截器 
instance.interceptors.request.use(config=>{
	if(config.url!=='/user/login'){
		config.headers.Authorization='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJNalU9Iiwic3ViIjoiYWRtaW4xIiwiaXNzIjoiMDk4ZjZiY2Q0NjIxZDM3M2NhZGU0ZTgzMjYyN2I0ZjYiLCJpYXQiOjE2NjQ5MzY4OTksImF1ZCI6InJlc3RhcGl1c2VyIiwiZXhwIjoxNjY1MTA5Njk5LCJuYmYiOjE2NjQ5MzY4OTl9.uLSFoGrqdvZS-3KA1HgjgshUZOqGbMWO5Rpr1yzMCAY';
	}
	return config
},error=>{
	return Promise.reject(error)
});
// 響應(yīng)攔截器 ---對(duì)axios封裝響應(yīng)數(shù)據(jù)做攔截
instance.interceptors.response.use(response=>{
	let res=response.data;
	return res
},error=>{
	return Promise.reject(error)
});

// 封裝get方法
export function get(url,params){
	return instance.get(url,{
		params,
	})
}
//封裝postJSON方法 json數(shù)據(jù)格式 --登錄接口
export function postJSON(url,data){
	return instance.post(url,data);
}

// 封裝post方法 表單格式數(shù)據(jù)
export function post(url,data){
	return instance.post(url,qs.stringify(data))
}

export default instance

到此這篇關(guān)于Axios在vue項(xiàng)目中的封裝方法的文章就介紹到這了,更多相關(guān)Axios vue封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue學(xué)習(xí)之mintui picker選擇器實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)示例

    vue學(xué)習(xí)之mintui picker選擇器實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)示例

    本篇文章主要介紹了vue學(xué)習(xí)之mintui picker選擇器實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-10-10
  • element?upload?鉤子函數(shù)的坑及解決

    element?upload?鉤子函數(shù)的坑及解決

    這篇文章主要介紹了element?upload?鉤子函數(shù)的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue路由重定向和別名的示例代碼

    Vue路由重定向和別名的示例代碼

    在Vue.js應(yīng)用開發(fā)中,Vue Router 提供了許多特性來簡(jiǎn)化前端路由管理和用戶體驗(yàn),其中一個(gè)重要的特性便是路由重定向和別名,它們可以幫助我們更好地管理和組織路由,本文將詳細(xì)介紹如何在Vue Router中使用路由重定向和別名,需要的朋友可以參考下
    2024-09-09
  • 記錄vue做微信自定義分享的一些問題

    記錄vue做微信自定義分享的一些問題

    這篇文章主要介紹了記錄vue做微信自定義分享的一些問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 詳解vite+ts快速搭建vue3項(xiàng)目以及介紹相關(guān)特性

    詳解vite+ts快速搭建vue3項(xiàng)目以及介紹相關(guān)特性

    這篇文章主要介紹了vite+ts快速搭建vue3項(xiàng)目以及介紹相關(guān)特性,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Jenkins自動(dòng)化部署Vue項(xiàng)目的方法實(shí)現(xiàn)

    Jenkins自動(dòng)化部署Vue項(xiàng)目的方法實(shí)現(xiàn)

    本文主要介紹了Jenkins自動(dòng)化部署Vue項(xiàng)目的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 在Vue中如何使用Cookie操作實(shí)例

    在Vue中如何使用Cookie操作實(shí)例

    這篇文章主要介紹了在Vue中如何使用Cookie操作實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Vue操作DOM解決顯示位置問題

    Vue操作DOM解決顯示位置問題

    這篇文章主要介紹了Vue操作DOM解決顯示位置問題,文中通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-12-12
  • vue實(shí)現(xiàn)列表的添加點(diǎn)擊

    vue實(shí)現(xiàn)列表的添加點(diǎn)擊

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)列表的添加點(diǎn)擊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • vue3的父?jìng)髯訂栴}(單項(xiàng)數(shù)據(jù)流)

    vue3的父?jìng)髯訂栴}(單項(xiàng)數(shù)據(jù)流)

    這篇文章主要介紹了vue3的父?jìng)髯訂栴}(單項(xiàng)數(shù)據(jù)流),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評(píng)論

环江| 昌黎县| 唐河县| 博爱县| 突泉县| 志丹县| 夹江县| 成安县| 浦江县| 万盛区| 邯郸市| 依兰县| 勃利县| 贵德县| 砀山县| 寿阳县| 阳江市| 元江| 呼和浩特市| 宁远县| 迁安市| 阜康市| 雷山县| 孝昌县| 昭觉县| 兴文县| 大丰市| 陈巴尔虎旗| 乐清市| 分宜县| 铁岭市| 海南省| 彰化市| 二手房| 南昌县| 白水县| 湟源县| 郴州市| 格尔木市| 永兴县| 拉萨市|