vue.js - axios 可以挂在Vue原型上 为啥还有个vue-axios?
本文介绍了vue.js - axios 可以挂在Vue原型上 为啥还有个vue-axios?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如题,这个vue-axios有什么其他用途还是多余的?
因为
Vue.prototype.$http = axios
和
import Vueaxios from ‘vue-axios’
Vue.use(VueAxios,axios)
这二者效果都是一致,这样我就感觉vue-axios显得多余。希望知道多一点的朋友,能告诉我vue-axios存在的必要,非常感谢!
解决方案
何不看看vue-axios的源码,就一个文件:
index.js
(function () {
/**
* Install plugin
* @param Vue
* @param axios
*/
function plugin(Vue, axios) {
if (plugin.installed) {
return
}
plugin.installed = true
if (!axios) {
console.error('You have to install axios')
return
}
Vue.axios = axios
Object.defineProperties(Vue.prototype, {
axios: {
get() {
return axios
}
},
$http: {
get() {
return axios
}
}
})
}
if (typeof exports == "object") {
module.exports = plugin
} else if (typeof define == "function" && define.amd) {
define([], function(){ return plugin })
} else if (window.Vue && window.axios) {
Vue.use(plugin, window.axios)
}
})();
首先是按照Vue
的插件文档来写的,直接绑在原型链上不是不可以,如果像楼主你这样注册一个$http,和项目其他成员协作的时候就必须注明你注册的变量名称,而使用vue-axios大家就没有歧义了。
说白了,使用vue-axios更多是为了符合规范,并且方便协作吧。
这篇关于vue.js - axios 可以挂在Vue原型上 为啥还有个vue-axios?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文