国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Vue2 配置 Axios api 接口調用文件的方法

來源:懂視網 責編:小采 時間:2020-11-27 22:25:35
文檔

Vue2 配置 Axios api 接口調用文件的方法

Vue2 配置 Axios api 接口調用文件的方法:前情回顧 在上一篇中,我們通過配置基本的信息,已經讓我們的項目能夠正常的跑起來了。但是,這里還沒有涉及到 AJAX 請求接口的內容。 vue 本身是不支持 ajax 接口請求的,所以我們需要安裝一個接口請求的 npm 包,來使我們的項目擁有這個功能。 這其實是一
推薦度:
導讀Vue2 配置 Axios api 接口調用文件的方法:前情回顧 在上一篇中,我們通過配置基本的信息,已經讓我們的項目能夠正常的跑起來了。但是,這里還沒有涉及到 AJAX 請求接口的內容。 vue 本身是不支持 ajax 接口請求的,所以我們需要安裝一個接口請求的 npm 包,來使我們的項目擁有這個功能。 這其實是一

前情回顧

在上一篇中,我們通過配置基本的信息,已經讓我們的項目能夠正常的跑起來了。但是,這里還沒有涉及到 AJAX 請求接口的內容。

vue 本身是不支持 ajax 接口請求的,所以我們需要安裝一個接口請求的 npm 包,來使我們的項目擁有這個功能。

這其實是一個重要的 unix 思想,就是一個工具只做好一件事情,你需要額外的功能的時候,則需要安裝對應的軟件來執行。如果你以前是一個 jquery 重度用戶,那么可能理解這個思想一定要深入的理解。

支持 ajax 的工具有很多。一開始,我使用的是 superagent 這個工具。但是我發現近一年來,絕大多數的教程都是使用的 axios 這個接口請求工具。其實,這本來是沒有什么差別的。但是為了防止你們在看了我的博文和其他的文章之后,產生理念上的沖突。因此,我也就改用 axios 這個工具了。

本身, axios 這個工具已經做了很好的優化和封裝。但是,在使用的時候,還是略顯繁瑣,因此,我重新封裝了一下。當然,更重要的是,封裝 axios 這個工具是為了和我以前寫的代碼的兼容。不過我封裝得很好,也推薦大家使用。

封裝 axios 工具,編輯 src/api/index.js 文件

首先,我們要使用 axios 工具,就必須先安裝 axios 工具。執行下面的命令進行安裝

npm install axios -D

npm install axios -D

由于宿舍翻墻條件不好,這里使用 cnpm 替代

這樣,我們就安裝好了 axios 工具了。

還記得我們在第三篇博文中整理的系統結構嗎?我們新建了一個 src/api/index.js 這個空文本文件,就那么放在那里了。這里,我們給它填寫上內容。

// 配置API接口地址
var root = 'https://cnodejs.org/api/v1'
// 引用axios
var axios = require('axios')
// 自定義判斷元素類型JS
function toType (obj) {
 return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
}
// 參數過濾函數
function filterNull (o) {
 for (var key in o) {
 if (o[key] === null) {
 delete o[key]
 }
 if (toType(o[key]) === 'string') {
 o[key] = o[key].trim()
 } else if (toType(o[key]) === 'object') {
 o[key] = filterNull(o[key])
 } else if (toType(o[key]) === 'array') {
 o[key] = filterNull(o[key])
 }
 }
 return o
}
/*
 接口處理函數
 這個函數每個項目都是不一樣的,我現在調整的是適用于
 https://cnodejs.org/api/v1 的接口,如果是其他接口
 需要根據接口的參數進行調整。參考說明文檔地址:
 https://cnodejs.org/topic/5378720ed6e2d16149fa16bd
 主要是,不同的接口的成功標識和失敗提示是不一致的。
 另外,不同的項目的處理方法也是不一致的,這里出錯就是簡單的alert
*/

function apiAxios (method, url, params, success, failure) {
 if (params) {
 params = filterNull(params)
 }
 axios({
 method: method,
 url: url,
 data: method === 'POST' || method === 'PUT' ? params : null,
 params: method === 'GET' || method === 'DELETE' ? params : null,
 baseURL: root,
 withCredentials: false
 })
 .then(function (res) {
 if (res.data.success === true) {
 if (success) {
 success(res.data)
 }
 } else {
 if (failure) {
 failure(res.data)
 } else {
 window.alert('error: ' + JSON.stringify(res.data))
 }
 }
 })
 .catch(function (err) {
 let res = err.response
 if (err) {
 window.alert('api error, HTTP CODE: ' + res.status)
 }
 })
}

// 返回在vue模板中的調用接口
export default {
 get: function (url, params, success, failure) {
 return apiAxios('GET', url, params, success, failure)
 },
 post: function (url, params, success, failure) {
 return apiAxios('POST', url, params, success, failure)
 },
 put: function (url, params, success, failure) {
 return apiAxios('PUT', url, params, success, failure)
 },
 delete: function (url, params, success, failure) {
 return apiAxios('DELETE', url, params, success, failure)
 }
}

 好,我們寫好這個文件之后,保存。

2017年10月20日補充,刪除了評論中有人反映會出錯的 return ,確實這個 return 是沒有什么作用的。不過我這邊確實沒出錯。沒關系啦,本來就沒啥用,只是一個以前的不好的習慣代碼。

有關 axios 的更多內容,請參考官方 github: https://github.com/mzabriskie/axios ,中文資料自行百度。

但就是這樣,我們還不能再 vue 模板文件中使用這個工具,還需要調整一下 main.js 文件。

調整 main.js 綁定 api/index.js 文件

這次呢,我們沒有上來就調整 main.js 文件,因為原始文件就配置得比較好,我就沒有刻意的想要調整它。

原始文件如下:

import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 template: '<App/>',
 components: { App }
})

我們插入以下代碼:

// 引用API文件
import api from './api/index.js'
// 將API方法綁定到全局
Vue.prototype.$api = api
 
也就是講代碼調整為:

import Vue from 'vue'
import App from './App'
import router from './router'

// 引用API文件
import api from './api/index.js'
// 將API方法綁定到全局
Vue.prototype.$api = api

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 template: '<App/>',
 components: { App }
})

 好了,這樣,我們就可以在項目中使用我們封裝的 api 接口調用文件了。

測試一下看看能不能調通

我們來修改一下 src/page/index.vue 文件,將代碼調整為以下代碼:

<template>
 <div>index page</div>
</template>
<script>
export default {
 created () {
 this.$api.get('topics', null, r => {
 console.log(r)
 })
 }
}
</script>

好,這里是調用 cnodejs.org 的 topics 列表接口,并且將結果打印出來。

我們在瀏覽器中打開控制臺,看看 console 下面有沒有輸出入下圖一樣的內容。如果有的話,就說明我們的接口配置已經成功了。

cnodejs.org 接口數據演示

cnodejs.org 接口數據演示

好,如果你操作正確,代碼沒有格式錯誤的話,那么現在應該得到的結果是和我一樣的。如果出錯或者怎么樣,請仔細的檢查代碼,看看有沒有什么問題。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Vue2 配置 Axios api 接口調用文件的方法

Vue2 配置 Axios api 接口調用文件的方法:前情回顧 在上一篇中,我們通過配置基本的信息,已經讓我們的項目能夠正常的跑起來了。但是,這里還沒有涉及到 AJAX 請求接口的內容。 vue 本身是不支持 ajax 接口請求的,所以我們需要安裝一個接口請求的 npm 包,來使我們的項目擁有這個功能。 這其實是一
推薦度:
標簽: 文件 VUE API
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美在线视频免费观看 | 欧美精品免费在线 | 五十路中文字幕 | 国产精品第1页在线观看 | 欧美精品啪啪 | 精品国产乱码久久久久久一区二区 | 91久久国产视频 | 爱色电影 | 亚洲欧美日韩专区 | 国产成人精品久久一区二区三区 | 日韩一区三区 | 亚洲一区二区三区高清 | 欧美另类色 | 中文字幕第一区 | 国产午夜在线观看 | 国产区在线观看 | 欧美日韩一区二区三区在线 | 最新大黄网站免费 | 久久一级毛片 | 亚洲日韩区在线电影 | 欧美一区二区三区四区在线观看 | 九九福利 | 国产精品久久久久a影院 | 色综合91久久精品中文字幕 | 精品视频在线观看免费 | 欧美国产综合 | 国产精品久久久久久一级毛片 | 久久久久亚洲 | 国产亚洲一区二区三区不卡 | 91视频一区二区 | 久久66热re国产毛片基地 | 国产成人精品日本亚洲语音2 | 在线视频区 | 999国产精品999久久久久久 | 国产日产欧美一区二区三区 | 国产一在线精品一区在线观看 | 欧美高清在线视频一区二区 | 国产人澡人澡澡澡人碰视频 | 欧美国产成人精品一区二区三区 | 四虎影视永久在线 | 欧美视频精品 |