vue中axios调用封装为接口的意义是什么?好多例子是每个模块写一个接口类例如:
import axios from '../axios'
export const login = data => {
return axios({
url: '/user/login',
method: 'post',
data
})
}
// 登出
export const logout = () => {
return axios({
url: '/user/logout',
method: 'get'
})
}
再加一个index.js引入所有接口,然后在Vue文件中调用:
this.$api.user.login(data).then((res) => {
this.user = res.data
})
但是可以直接引用axios不用封装直接调用:
this.$http.post('/user/login', data).then(res => {
this.user = res.data
})
感觉后者更直观啊,修改时直接在Vue文件里就搞定了不用到处找,封装接口的意义在哪里呢?
感谢各位,经思考决定去掉前端接口文件,直接在Vue文件里调用后台接口地址,简洁明了容易查找。后端接口有文档和示例查找是比较方便的。例如以下“/usr/login”就是接口地址:
axios的封装是需要的,拦截(权限,请求头设置等)、报错统一处理这些,这个$http就是封装的。去掉的每个模块的接口类。
以上的写法,浏览代码时,看首很清晰,直观看到后台接口地址,参数及处理,无须额外的文件配置。如果另单独封装一个接口文件,每次接口调整如增加新接口,接口文件也要跟着改,而且,vue代码中是这样的:
还需要找一下$api.user对应的封装接口文件,去看那个方法地址是否正确等,js还不能像java一样直接打开引用的类和方法,比较麻烦,好处不明显,把后台接口统一管理?后台接口本来就有Swagger文档,随接口修改自动更新的,为什么在前端再统一管理呢,所以就去掉不跟风。