电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

vue項目接口管理,所有接口都在apis文件夾中統一管理操作

瀏覽:107日期:2022-12-08 16:26:12

在vue開發中,會涉及到很多接口的處理,當項目足夠大時,就需要定義規范統一的接口,如何定義呢?

方法可能不只一種,本文使用axios+async/await進行接口的統一管理

本文使用vue-cli生成的項目舉例

使用接口管理之前

在項目的某個具體組件中調接口,把調用接口的方法直接寫在mounted中,或在是methods中 比如:

xxx.vue

<template> <div id='areaTree'> <!-- 標題 --> <div class='leftTree_Title'> <el-row> <el-col :span='24'>{{msg}}</el-col> </el-row> </div> </div></template><script>import axios from ’axios’export default { name: 'test', data:function(){ return{ msg:’站點選擇’, } }, methods:{ }, computed:{ }, //--------------Vue生命周期---具體細節參考:https://www.cnblogs.com/yingyigongzi/p/10844175.html --------------- beforeCreate(){ }, created(){ }, beforeMount(){ }, mounted(){ //理解成初始化,該操作只會執行一次 axios.get(’/GetTreeListForSoilByRegion’,{ //從接口讀取數據 params: { //參數 } }) .then(function (response) {//代碼操作 }) .catch(function (error) { console.log(error); }); }, beforeUpdate(){ }, updated(){ }, beforeDestroy(){ }, destroyed(){ }, //--------------Vue生命周期---具體細節參考:https://www.cnblogs.com/yingyigongzi/p/10844175.html ---------------} </script><style scoped></style>

使用項目管理之后,可以做到接口一次定義,到處使用,

代碼看起來規范,所有的接口都在一個文件夾定義,不用分散的各個組件,維護起來簡單,例如后臺的一些url變了,改起來也方便

步驟:

1.首先,在src目錄下新建一個文件夾,我這里叫apis,后臺提供的所有接口都在這里定義

2.在apis下新建一個js文件,叫http.js,在里面做axios相應的配置,目的 封裝axios,完整代碼如下,可以直接使用

http.js

import axios from ’axios’ //創建axios的一個實例var instance = axios.create({ baseURL:’’, timeout: 6000}) //------------------- 一、請求攔截器 忽略instance.interceptors.request.use(function (config) { return config;}, function (error) { // 對請求錯誤做些什么 return Promise.reject(error);}); //----------------- 二、響應攔截器 忽略instance.interceptors.response.use(function (response) { return response.data;}, function (error) { // 對響應錯誤做點什么 console.log(’攔截器報錯’); return Promise.reject(error);}); /** * 使用es6的export default導出了一個函數,導出的函數代替axios去幫我們請求數據, * 函數的參數及返回值如下: * @param {String} method 請求的方法:get、post、delete、put * @param {String} url 請求的url: * @param {Object} data 請求的參數 * @returns {Promise} 返回一個promise對象,其實就相當于axios請求數據的返回值 */export default function (method, url, data = null) { method = method.toLowerCase(); if (method == ’post’) { return instance.post(url, data) } else if (method == ’get’) { return instance.get(url, { params: data }) } else if (method == ’delete’) { return instance.delete(url, { params: data }) }else if(method == ’put’){ return instance.put(url,data) }else{ console.error(’未知的method’+method) return false }}

3.按照后臺文檔劃分的模塊新建js文件,這里簡單舉個例子

我要去拿樹結構的數據,到時候處理完數據在頁面上顯示出來,操作如下:

a.新建一個navigationTree.js,這里專門用來管理 我的樹組件(即上文的xxx.vue)的接口,(如果還有別的組件,比如aa.vue也要用到接口,可以在api文件夾內再創一個aa.js,管理aa.vue的接口)

navigationTree.js

//navigationTree.js 用于獲取導航樹的樹形json數據import req from ’./http.js’ //引入封裝好的axios//在這里定義了一個登陸的接口,把登陸的接口暴露出去給組件使用export const GETTREEDATA =params=>req(’get’,’/GetTreeListForSoilByRegion’,params)//這里使用了箭頭函數,轉換一下寫法://export const GETTREEDATA=function(req){// return req(’post’,’/GetTreeListForSoilByRegion’,params)//}

4.在組件中使用接口,來看看現在的xxx.vue

<template> <div id='areaTree'><br> <!-- 標題 --><br> <div class='leftTree_Title'><br> <el-row> <br><el-col :span='24'>{{msg}}</el-col> <br> </el-row> <br> </div> <br> </div></template> <script> //1. 引入獲取樹結構的接口定義import {GETTREEDATA} from ’../apis/navigationTree.js’ let treeTemp =[];export default { name: 'zTree', data:function(){ return{ msg:’站點選擇’, } }, methods:{ }, computed:{ }, beforeCreate(){ }, created(){ }, beforeMount(){ }, mounted(){ //理解成初始化,該操作只會執行一次 let testdata = GETTREEDATA(); //vue項目接口管理,所有接口都在apis文件夾中統一管理 testdata .then(function(response){ //console.log(response); }).catch(function(error){ console.log(error); }); }, beforeUpdate(){ }, updated(){ }, beforeDestroy(){ }, destroyed(){ },}</script> <style scoped></style>

核心部分在 mounted 這塊

補充知識:vue項目api接口組織方式

一般后端接口是,一個業務的方法,用一個controller,所以前端這邊,一個業務的接口放到一個js文件里

shiroApi提供認證相關接口,如下圖

vue項目接口管理,所有接口都在apis文件夾中統一管理操作

adminApi提供組織,用戶,角色管理等相關接口,如下圖

vue項目接口管理,所有接口都在apis文件夾中統一管理操作

將shiroApi和adminApi等等api做個匯總,到apis.js中,如下圖

vue項目接口管理,所有接口都在apis文件夾中統一管理操作

登陸接口調用例子,引入apis.js即可(當然也可以引入具體shiroApi.js,看自己需要和習慣),如下圖:

vue項目接口管理,所有接口都在apis文件夾中統一管理操作

個人總結的api組織方式,歡迎提供更好的建議

以上這篇vue項目接口管理,所有接口都在apis文件夾中統一管理操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
主站蜘蛛池模板: 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 烘干设备-热泵烘干机_广东雄贵能源设备有限公司 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 珠海网站建设_响应网站建设_珠海建站公司_珠海网站设计与制作_珠海网讯互联 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | 光环国际-新三板公司_股票代码:838504 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 高压互感器,电流互感器,电压互感器-上海鄂互电气科技有限公司 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 | 郑州巴特熔体泵有限公司专业的熔体泵,熔体齿轮泵与换网器生产厂家 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 自动焊锡机_点胶机_螺丝机-锐驰机器人| 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 铝镁锰板_铝镁锰合金板_铝镁锰板厂家_铝镁锰金属屋面板_安徽建科 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 防腐木批发价格_深圳_惠州_东莞防腐木厂家_森源(深圳)防腐木有限公司 | 真空乳化机-灌装封尾机-首页-温州精灌 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 金现代信息产业股份有限公司--数字化解决方案供应商 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 深圳市八百通智能技术有限公司官方网站| 达利园物流科技集团-| 留学生辅导网-在线课程论文辅导-留学生挂科申诉机构 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 沥青车辙成型机-车托式混凝土取芯机-混凝土塑料试模|鑫高仪器 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 |