国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

vue封裝axios基本思路

microcosm1994 / 2828人閱讀

Axios 是一個(gè)基于 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中。在vue項(xiàng)目之中使用axios是一個(gè)非常明智的選擇,因?yàn)関ue官方已經(jīng)宣稱不再維護(hù)vue-resource,并且推薦使用axios.

1 為什么選擇axios?

使用axios可以統(tǒng)一做請(qǐng)求-響應(yīng)攔截,例如響應(yīng)時(shí)我們將響應(yīng)信息攔截起來,判斷狀態(tài)碼,從而彈出報(bào)錯(cuò)信息

設(shè)定請(qǐng)求超時(shí),例如3000ms未響應(yīng)則停止請(qǐng)求

基于promise,可以很方便地使用then或者catch來處理請(qǐng)求

自動(dòng)轉(zhuǎn)換json數(shù)據(jù)

2 如何使用?

可以使用以下方式

1. npm install axios --save
2. bower install axios --save
3. 

3 封裝http請(qǐng)求
官網(wǎng)給定的實(shí)例:

axios.get("/user?ID=12345")
  .then(function(response){
    console.log(response);
  })
  .catch(function(err){
    console.log(err);
  });

在此基礎(chǔ)上我們應(yīng)該再次封裝http中的post get put delete方法,在具體頁面只需要調(diào)用接口函數(shù)以及傳入params即可,其余例如url,header之類的我們應(yīng)該進(jìn)行封裝。
例如在index.vue之中使用一個(gè)函數(shù)來實(shí)現(xiàn)通過id來獲取對(duì)應(yīng)的用戶信息,返回結(jié)果在then方法的result之中

API.getUserInfo({id:"01"}).then((result)=>{})

4 實(shí)現(xiàn)思路
新建一個(gè)文件,構(gòu)建一個(gè)axios對(duì)象實(shí)例 例如axios.js

import axios from "axios";
import router from "../router";
// 創(chuàng)建axios實(shí)例
const service = axios.create({            
  timeout: 30000 // 請(qǐng)求超時(shí)時(shí)間                                   
})
// 添加request攔截器 
service.interceptors.request.use(config => {         
  return config
}, error => {
  Promise.reject(error)
})
// 添加respone攔截器
service.interceptors.response.use(                  
  response => {
    let res={}; 
    res.status=response.status
    res.data=response.data;
    return res;
  },
  error => {
    if(error.response && error.response.status == 404){
     router.push("/blank.vue")
    }
   
        
    return Promise.reject(error.response)
  }
)

export function get(url, params = {}) {
  params.t = new Date().getTime(); //get方法加一個(gè)時(shí)間參數(shù),解決ie下可能緩存問題.
  return service({
    url: url,
    method: "get",
    headers: {     
    },
    params
  })
}


//封裝post請(qǐng)求
export function post(url, data = {}) { 
  //默認(rèn)配置 
  let sendObject={
    url: url,
    method: "post",
    headers: {
      "Content-Type":"application/json;charset=UTF-8"       
    },
    data:data
  };
  sendObject.data=JSON.stringify(data);
  return service(sendObject)
}

//封裝put方法 (resfulAPI常用)
export function put(url,data = {}){
  return service({
    url: url,
    method: "put",
    headers: {
      "Content-Type":"application/json;charset=UTF-8"       
    },
    data:JSON.stringify(data)
  }) 
}
//刪除方法(resfulAPI常用)
export function deletes(url){
  return service({
    url: url,
    method: "delete",
    headers: {}
  }) 
}

//不要忘記export
export {
  service
}

上述代碼主要實(shí)現(xiàn)一個(gè)基本的axios封裝,請(qǐng)求成功時(shí)獲取響應(yīng)對(duì)象,我們主需要獲取幾個(gè)有用的信息即可,例如狀態(tài)碼,數(shù)據(jù)即可,同時(shí)處理錯(cuò)誤,例如返回404我們跳轉(zhuǎn)到一個(gè)新界面

封裝接口函數(shù)
新建文件,例如api.js

import {get, post,deletes,put} from "./axios.js" ;//導(dǎo)入axios實(shí)例文件中方法
let bsae_api = process.env.BASE_API ? "./"+process.env.BASE_API :".." //獲取項(xiàng)目api請(qǐng)求地址
//根據(jù)id獲取用戶信息
export const getUserInfoById=(id)=>{
    return get(`${bsae_api}/web/user/${id}`); //resfulapi風(fēng)格
}

具體頁面使用 index.vue

import API from "@/utils/api"
getUserInfo(){
  API.getUserInfoById("01).then((result)=>{
   }).catch((error)=>{
 })
}

以上就是一些axios封裝的基本介紹

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/108150.html

相關(guān)文章

  • Spring Boot + Vue 前后端分離開發(fā),前端網(wǎng)絡(luò)請(qǐng)求封裝與配置

    摘要:今天松哥就帶大家來看看的使用。此時(shí)啟動(dòng)前端項(xiàng)目,就可以順利發(fā)送網(wǎng)絡(luò)請(qǐng)求了。松哥將自己封裝的網(wǎng)絡(luò)請(qǐng)求庫已經(jīng)放在上,歡迎大家參考。前端網(wǎng)絡(luò)訪問,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,網(wǎng)絡(luò)訪問較多的采用 vue-resources,Vue2.0 之后,官方不再建議使用 vue-resources ,這個(gè)項(xiàng)目本身也停止維護(hù),目前建議使用的方案是 axios。今天松哥就帶大...

    Ku_Andrew 評(píng)論0 收藏0
  • iMap | 一款基于 Electron 和 Vue 的跨平臺(tái)旅行地圖生成器

    摘要:請(qǐng)求錯(cuò)誤請(qǐng)求代碼封裝與基本一致,只是將換成即可。關(guān)于的使用是個(gè)能把組件的共享狀態(tài)抽取出來,當(dāng)做一個(gè)全局單例模式進(jìn)行管理。首先確保你的已經(jīng)安裝,運(yùn)行來安裝。 項(xiàng)目地址:https://huangxizhou.com/project/iMap 技術(shù)棧 Vue.js Vuex Axios Webpack Leancloud(express) Echarts Electron(electr...

    dingda 評(píng)論0 收藏0
  • vuecli3 vant rem 移動(dòng)端框架方案

    摘要:描述基于適配方案封裝,構(gòu)建手機(jī)端模板腳手架幫你做好的配置有多環(huán)境開發(fā)封裝適配方案生產(chǎn)環(huán)境優(yōu)化首屏加速低版本瀏覽器兼容環(huán)境發(fā)布腳本可以上手直接寫代碼多環(huán)境開發(fā)之前寫過一個(gè)多環(huán)境的方案,是基于的多環(huán)境配置方案?jìng)魉烷T最近新的項(xiàng)目采用了開始了 描述 基于vue-cli3.0+webpack 4+vant ui + sass+ rem適配方案+axios封裝,構(gòu)建手機(jī)端模板腳手架 幫你做好的配置...

    since1986 評(píng)論0 收藏0
  • vue+node+mongodb 搭建一個(gè)完整博客

    摘要:開發(fā)一個(gè)完整博客流程前言前段時(shí)間剛把自己的個(gè)人網(wǎng)站寫完,于是這段時(shí)間因?yàn)槭虑椴皇翘啵阏砹艘幌拢瑢懥藗€(gè)簡易版的博客系統(tǒng)服務(wù)端用的是框架進(jìn)行開發(fā)技術(shù)棧目錄結(jié)構(gòu)講解的配置文件放置代碼文件項(xiàng)目參數(shù)配置的文件日志打印文件項(xiàng)目依賴模塊 Vue + Node + Mongodb 開發(fā)一個(gè)完整博客流程 前言 前段時(shí)間剛把自己的個(gè)人網(wǎng)站寫完, 于是這段時(shí)間因?yàn)槭虑椴皇翘啵阏砹艘幌拢瑢懥藗€(gè)簡易...

    Miracle_lihb 評(píng)論0 收藏0
  • VUE知識(shí)點(diǎn)集錦

    摘要:載入前后在階段,實(shí)例的和都初始化了,但還是掛載之前為虛擬的節(jié)點(diǎn),還未替換。類似于,不同在于提交的是,而不是直接變更狀態(tài)可以包含任意異步操作。 vue基礎(chǔ) 1、 router 路由與 a 標(biāo)簽的區(qū)別:https://www.jianshu.com/p/34b...2、 VUE雙向綁定的原理: 答:VUE實(shí)現(xiàn)雙向數(shù)據(jù)綁定的原理就是利用了 Object.defineProperty() 這個(gè)...

    Tecode 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

microcosm1994

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<