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

vue中axios封裝使用的完整教程

 更新時(shí)間:2021年03月03日 16:53:41   作者:黑豆1024  
這篇文章主要給大家介紹了關(guān)于vue中axios封裝使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

如今,在項(xiàng)目中,普遍采用Axios庫進(jìn)行Http接口請求。它是基于promise的http庫,可運(yùn)行在瀏覽器端和node.js中。此外還有攔截請求和響應(yīng)、轉(zhuǎn)換JSON數(shù)據(jù)、客戶端防御XSRF等優(yōu)秀的特性。

考慮到各個(gè)項(xiàng)目實(shí)際使用時(shí)寫法混亂,不統(tǒng)一。對Axios進(jìn)行一下通用化的封裝,目的是幫助簡化代碼和利于后期的更新維護(hù),盡量通用化。

方法如下

1. vue安裝axios

	npm install axios -S
	或者
	npm i axios -S

2. 在main.js進(jìn)行全局引入

	import axios from 'axios'
	Vue.prototype.$axios = axios //將axios綁定到vue的原型上

3. 配置跨域 在根目錄下vue.config.js里邊

	module.exports = {
	 publicPath: './',
	 //配置跨域請求
	 devServer: {
	  open: true, //是否自動打開瀏覽器
	  https: false, //是否開啟https
	  hotOnly: false,
	  proxy: { // 配置跨域
	   '/api': {
	    target: 'http://********', //請求接口域名 
	    ws: true,
	    secure: false,
	    changOrigin: true, //是否允許跨越
	    pathRewrite: {
	     '^/api': ''
	    }
	   }
	  },
	  before: app => { }
	 }
	}

4. 在src子目錄下的api文件夾下創(chuàng)建api.js文件進(jìn)行簡單的封裝axios

import axios from 'axios'
//這里引用了element的loading全屏加載
import { Loading } from "element-ui";

const service = axios.create({
 baseURL: '/',
 timeout: 30000 // 設(shè)置請求超時(shí)時(shí)間
})
let loading = "";
// 請求攔截器
service.interceptors.request.use(
 (config) => {
  // 在請求發(fā)送之前做一些處理
  if (!(config.headers['Content-Type'])) {
   loading = Loading.service({
    lock: true,
    text: "加載中...",
    spinner: "el-icon-loading",
    background: "rgba(255,255,255,0.7)",
    customClass: "request-loading",
   });
   if (config.method == 'post') {
    config.headers['Content-Type'] =
     'application/json;charset=UTF-8'
    for (var key in config.data) {
     if (config.data[key] === '') {
      delete config.data[key]
     }
    }
    config.data = JSON.stringify(config.data)
   } else {
    config.headers['Content-Type'] =
     'application/x-www-form-urlencoded;charset=UTF-8'
    config.data = JSON.stringify(config.data)
   }
  }
  const token = "token"
  // 讓每個(gè)請求攜帶token-- ['X-Token']為自定義key 請根據(jù)實(shí)際情況自行修改
  if (token) {
   config.headers['Authorization'] = token
  }
  return config
 },
 (error) => {
  loading.close();
  // 發(fā)送失敗
  console.log(error)
  return Promise.reject(error)
 }
)

// 響應(yīng)攔截器
service.interceptors.response.use(
 (response) => {

  loading.close();
  // dataAxios 是 axios 返回?cái)?shù)據(jù)中的 data
  // loadingInstance.close();
  const dataAxios = response.data
  // 這個(gè)狀態(tài)碼是和后端約定的

  return dataAxios
 },
 (error) => {
  return Promise.reject(error)
 }
)

	export default service

5. 在api文件夾下創(chuàng)建http文件

 // 引入封裝好的axios
 // ps:如果沒有封裝,正常引入axios即可
  import axios from "./api";
	// 	/api為配置跨域的路徑變量
  let reportUpload= '/api/report/upload'
  export const Upload= () => {
   return axios.get( reportUpload )
  }

6. 在頁面中調(diào)用接口

// 引入封裝好的接口
 	import { Upload} from "@/api/http.js"; 

// 調(diào)用時(shí)使用
 async Upload() {
  let { result } = await getlist ();
  	console.log(result)
 },

總結(jié)

到此這篇關(guān)于vue中axios封裝使用的文章就介紹到這了,更多相關(guān)vue axios封裝使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解vue-cli3多頁應(yīng)用改造

    詳解vue-cli3多頁應(yīng)用改造

    這篇文章主要介紹了詳解vue-cli3多頁應(yīng)用改造,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • vue項(xiàng)目實(shí)例中用query傳參如何實(shí)現(xiàn)跳轉(zhuǎn)效果

    vue項(xiàng)目實(shí)例中用query傳參如何實(shí)現(xiàn)跳轉(zhuǎn)效果

    這篇文章主要介紹了vue項(xiàng)目實(shí)例中用query傳參如何實(shí)現(xiàn)跳轉(zhuǎn)效果,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vuex頁面刷新數(shù)據(jù)丟失問題的四種解決方式

    vuex頁面刷新數(shù)據(jù)丟失問題的四種解決方式

    vuex是大家使用vue時(shí)大多數(shù)都會選擇的,但是當(dāng)頁面刷新之后vuex數(shù)據(jù)會丟失,下面這篇文章主要給大家介紹了關(guān)于vuex頁面刷新數(shù)據(jù)丟失問題的四種解決方式,需要的朋友可以參考下
    2022-02-02
  • 詳解win7 cmd執(zhí)行vue不是內(nèi)部命令的解決方法

    詳解win7 cmd執(zhí)行vue不是內(nèi)部命令的解決方法

    這篇文章主要介紹了詳解win7 cmd執(zhí)行vue不是內(nèi)部命令的解決方法的相關(guān)資料,這里提供了解決問題的詳細(xì)步驟,具有一定的參考價(jià)值,需要的朋友可以參考下
    2017-07-07
  • Vue?項(xiàng)目的成功發(fā)布和部署的實(shí)現(xiàn)

    Vue?項(xiàng)目的成功發(fā)布和部署的實(shí)現(xiàn)

    本文主要介紹了Vue?項(xiàng)目的成功發(fā)布和部署的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 使用Vue3實(shí)現(xiàn)一個(gè)穿梭框效果的示例代碼

    使用Vue3實(shí)現(xiàn)一個(gè)穿梭框效果的示例代碼

    這篇文章主要給大家介紹了如何使用?Vue3?實(shí)現(xiàn)一個(gè)穿梭框效果,當(dāng)選中數(shù)據(jù),并且點(diǎn)擊相對應(yīng)的方向箭頭時(shí),選中的數(shù)據(jù)會發(fā)送到對面,并且數(shù)據(jù)會保持正確的順序進(jìn)行排列,文中有詳細(xì)的代碼講解,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-12-12
  • VueRouter路由模式全面解析

    VueRouter路由模式全面解析

    這篇文章主要介紹了VueRouter路由模式的用法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • ant-desigin-vue中form表單的使用解讀

    ant-desigin-vue中form表單的使用解讀

    這篇文章主要介紹了ant-desigin-vue中form表單的使用解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue中axios利用blob實(shí)現(xiàn)文件瀏覽器下載方式

    vue中axios利用blob實(shí)現(xiàn)文件瀏覽器下載方式

    這篇文章主要介紹了vue中axios利用blob實(shí)現(xiàn)文件瀏覽器下載方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 使用Vue3實(shí)現(xiàn)在瀏覽器端進(jìn)行zip文件壓縮

    使用Vue3實(shí)現(xiàn)在瀏覽器端進(jìn)行zip文件壓縮

    在前端開發(fā)中,我們時(shí)常需要處理文件上傳和下載的功能,本文主要和大家分享一下如何使用Vue3和JSZip庫在瀏覽器端實(shí)現(xiàn)zip文件壓縮,需要的可以參考下
    2024-05-05

最新評論

依安县| 新平| 鲁甸县| 东乡族自治县| 新巴尔虎右旗| 临漳县| 锡林郭勒盟| 醴陵市| 翁牛特旗| 武义县| 滨州市| 通榆县| 东丰县| 清原| 定日县| 湖南省| 玛多县| 红桥区| 天全县| 依安县| 白银市| 克什克腾旗| 龙岩市| 扎囊县| 兴安盟| 蒲江县| 福海县| 舟山市| 东兴市| 泰兴市| 南城县| 海南省| 安多县| 华池县| 偃师市| 社旗县| 清苑县| 香河县| 于田县| 台北县| 报价|