論vue項目api相關代碼的組織方式 vue
看了下項目組同事的代碼,發現不一樣項目有不一樣的組織版本 ios
版本一:axios
├─apis │ a.api.js │ b.api.js │ b.api.js │ d.api.js
每一個api文件裏都是這樣的代碼api
// d.api.js import axios from '@/utils/http' export function editUser (Param) { return axios.post('url1', { ...Param }) } export function deleteUser (Param) { return axios.post('url2', { ...Param }) } // 調用方式以下 import {editUser} from '@/apis/d.api.js'
這種方法的缺點:函數
版本二:
乾脆不把api統一到一塊兒,把axios掛載到vue對象上只在須要的地方寫post
this.$axios.post(url,params).then()
這種方法缺點:this
版本三:url
// apis/index.js // 把全部api的url統一在一塊兒並掛在到vue對象上 // 全部接口都在一個文件裏會比較大 // 能夠按功能模塊分組編寫 let ENV = { name1: 'url1', // 用戶相關接口 name2: 'url2', // 積分相關接口 name3: 'url3', // 產品相關接口 name4: 'url4', } export default ENV
// src/main.js import api from '@/apis/index.js' Vue.prototype.$api = api
//須要調用接口的js文件 this.$axios.post(this.$api.name1,params).then()
缺點:prototype
優勢:code