亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

首先上需求

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

首先上封裝代碼

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

import axios from 'axios';
// 導(dǎo)入配置文件 配置文件就導(dǎo)入的請(qǐng)求的前綴地址
import {defaults} from '@/config/'

import storage from './storage'


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

/**
 * 封裝的全局ajax請(qǐng)求
 */

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

  /**
   * 初始化
   */
  init(){
    axios.defaults.baseURL = defaults.baseURL;
  };
  _setUserInfo(data){
    // 把請(qǐng)求的數(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;
    }
  }

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

      return false
    }else{
      return true
    }

  }

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

  /**
   * GET 請(qǐng)求 {es6解構(gòu)賦值}
   * @param type 包含url信息
   * @param data 需要發(fā)送的參數(shù)
   * @returns {Promise}
   * @constructor
   */
  HttpGet({url},data) {
    console.log(data)
    // 創(chuàng)建一個(gè)promise對(duì)象
    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 請(qǐng)求
   * @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)建一個(gè)promise對(duì)象
    this.promise = new Promise((resolve, reject)=> {
      for(const item in urlData){
        url += '/' + urlData[item];
      };
      axios.post(url,Data)
        .then((data) => {

          // 是否請(qǐng)求成功
          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個(gè)參數(shù)

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

    詳解Vue源碼學(xué)習(xí)之雙向綁定

    這篇文章主要介紹了Vue源碼學(xué)習(xí)之雙向綁定,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue項(xiàng)目中使用axios遇到的相對(duì)路徑和絕對(duì)路徑問(wèn)題

    vue項(xiàng)目中使用axios遇到的相對(duì)路徑和絕對(duì)路徑問(wèn)題

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

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

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

    簡(jiǎn)單學(xué)習(xí)5種處理Vue.js異常的方法

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

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

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

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

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

最新評(píng)論