欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue 里面使用axios 和封裝的示例代碼

 更新時間:2017年09月01日 16:45:55   作者:喝不醉再來  
本篇文章主要介紹了vue 里面使用axios 和封裝的示例代碼,非常具有實用價值,需要的朋友可以參考下

vue官方推薦使用 axios發(fā)送請求

首先上需求

1.需要封裝全局調(diào)用
2.返回一個promise對象
3.錯誤全局統(tǒng)一處理
4.除了登錄界面token帶入頭部
5.登錄時候把用戶信息自動存到vuex里面

首先上封裝代碼

/**
 * User: sheyude
 * Date: 2017/8/23 0023
 * Time: 下午 13:15
 *
 */

import axios from 'axios';
// 導入配置文件 配置文件就導入的請求的前綴地址
import {defaults} from '@/config/'

import storage from './storage'


// 這是一個餓了么的彈框
import { Message } from 'element-ui';
//路由配置
import router from '@/router'

/**
 * 封裝的全局ajax請求
 */

class Axios{
  constructor (){
    this.init();
  };

  /**
   * 初始化
   */
  init(){
    axios.defaults.baseURL = defaults.baseURL;
  };
  _setUserInfo(data){
    // 把請求的數(shù)據(jù)存入vuex
    store.commit('setUserInfo',data);
  }

  /**
   * 判斷是否是登錄
   * @param url
   * @returns {boolean}
   * @private
   */
  _isLogin(url){
    
    if(url != '/app/login'){
      axios.defaults.headers = {'x-token': store.state.user.user.token.token};
      return false;
    }else{
      return true;
    }
  }

  /**
   * 判斷是否返回數(shù)據(jù)
   * @param data 接收到的數(shù)據(jù)
   * @returns {boolean}
   * @private
   */
  _isStatus(data){
    if(data.code == 100){
      router.push('/login');
      Message.error(data.message || '請重新登錄!');

      return false
    }else{
      return true
    }

  }

  /**
   * 全局錯誤處理
   * @param data 傳入錯誤的數(shù)據(jù)
   * @private
   */
  _error(data){
    console.log(data)
    Message.error('網(wǎng)絡(luò)錯誤!');
  }

  /**
   * GET 請求 {es6解構(gòu)賦值}
   * @param type 包含url信息
   * @param data 需要發(fā)送的參數(shù)
   * @returns {Promise}
   * @constructor
   */
  HttpGet({url},data) {
    console.log(data)
    // 創(chuàng)建一個promise對象
    this._isLogin(url)
    this.promise = new Promise((resolve, reject)=> {
      axios.get(url,{params:data})
        .then((data) => {
        // console.log(data)
          if(this._isStatus(data.data)){
            resolve(data.data);
          }
        })
        .catch((data) =>{
          this._error(data);
        })
    })
    return this.promise;
  };

  /**
   * POST 請求
   * @param type Object 包含url信息
   * @param data Object 需要發(fā)送的參數(shù)
   * @param urlData Object 需要拼接到地址欄的參數(shù)
   * @returns {Promise}
   * @constructor
   */
  HttpPost({url},Data,urlData){

    // 判斷是否加頭部
    this._isLogin(url);
    // 創(chuàng)建一個promise對象
    this.promise = new Promise((resolve, reject)=> {
      for(const item in urlData){
        url += '/' + urlData[item];
      };
      axios.post(url,Data)
        .then((data) => {

          // 是否請求成功
          if(this._isStatus(data.data)){
            // 是否需要存數(shù)據(jù)
            if(this._isLogin(url)){
              this._setUserInfo(data.data)
            };
            resolve(data.data)
          };
        })
        .catch((data) =>{
          this._error(data);
        })
    })
    return this.promise;
  };
};
export default new Axios();

調(diào)用方式

this.$axios.HttpPost(this.audit.auditGet,this.params)
 .then((data) => {
    this.pageData = data.data
 })

接收2個參數(shù)

1 url 地址
2 需要傳遞的參數(shù)

我目前全局注冊了 使用需要掛載到vue原型

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue利用Mixin輕松實現(xiàn)代碼復用

    Vue利用Mixin輕松實現(xiàn)代碼復用

    Mixin,中文翻譯為"混入",在Vue中是一種非常有用的功能,可以解決許多開發(fā)中的常見問題,下面就讓我們一起深入了解一下Mixin在Vue中解決了哪些問題吧
    2023-06-06
  • Vue實現(xiàn)用戶登錄及token驗證

    Vue實現(xiàn)用戶登錄及token驗證

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)用戶登錄及token驗證,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Vue中nvm-windows的安裝與使用教程(親測)

    Vue中nvm-windows的安裝與使用教程(親測)

    nvm全英文也叫node.js version management,是一個nodejs的版本管理工具,這篇文章主要介紹了Vue中nvm-windows的安裝與使用,需要的朋友可以參考下
    2023-02-02
  • Vue中實現(xiàn)路由跳轉(zhuǎn)傳參的4種方式

    Vue中實現(xiàn)路由跳轉(zhuǎn)傳參的4種方式

    本文詳盡的講了在Vue項目中,如何實現(xiàn)路由跳轉(zhuǎn)傳參的4四種方式(2大路由跳轉(zhuǎn)方式,每種方式包括4種路由傳參實現(xiàn)形式),以及每種方式中實現(xiàn)路由跳轉(zhuǎn)包括路由傳參的方法的各種寫法,需要的朋友可以參考下
    2024-04-04
  • 詳解Vue源碼學習之雙向綁定

    詳解Vue源碼學習之雙向綁定

    這篇文章主要介紹了Vue源碼學習之雙向綁定,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • vue項目中使用axios遇到的相對路徑和絕對路徑問題

    vue項目中使用axios遇到的相對路徑和絕對路徑問題

    這篇文章主要介紹了vue項目中使用axios遇到的相對路徑和絕對路徑問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue router 組件的高級應(yīng)用實例代碼

    vue router 組件的高級應(yīng)用實例代碼

    這篇文章主要介紹了vue-router 組件的高級應(yīng)用,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • 簡單學習5種處理Vue.js異常的方法

    簡單學習5種處理Vue.js異常的方法

    這篇文章主要介紹了簡單學習5種處理Vue.js異常的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • 淺談Vue響應(yīng)式(數(shù)組變異方法)

    淺談Vue響應(yīng)式(數(shù)組變異方法)

    這篇文章主要介紹了淺談Vue響應(yīng)式(數(shù)組變異方法),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 詳解vuex中mutation/action的傳參方式

    詳解vuex中mutation/action的傳參方式

    這篇文章主要介紹了詳解vuex中mutation/action的傳參方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08

最新評論