Vue原型Axios

时间:2019-02-11 19:12:24

标签: javascript vue.js axios quasar

我是vue和Quasar的新手。

现在,我了解了 Vue的工作方式,

我试图理解初始化Quasar时获得的样板代码

启动时,我要求它集成 cli

中的 axios和veux

现在,我正在尝试理解模板,该模板偶然发现插件文件夹中的 axios.js文件

文件包含以下代码

import axios from 'axios'

export default ({ Vue }) => {
  Vue.prototype.$axios = axios
}
  1. 有人可以告诉我这段代码做什么吗?根据我的理解,似乎它为 vax称为axios 添加了一种方法,以便我们可以在全球范围内使用它?

  2. 使用$axios的原因可能是什么?即Vue.prototype.$axios = axios,我们不能只做Vue.prototype.axios = axios吗?因为它最终会创建属性?

  3. 如果我们可以全局使用axios(无需导入axios,或者换句话说,写import axios from "axios")。那我们该怎么办呢?

  4. 我猜这只能在 .vue 文件上起作用?

  5. 我习惯于在所有网络请求中创建一个辅助函数,通常该辅助函数文件为networkRequest.js,我将在其中导入axios并发出请求。 networkRequest.js是发出所有请求的唯一点。由于Vue.prototype.$axios = axios仅适用于.vue文件?使用样板中的axios插件还是有意义的

1 个答案:

答案 0 :(得分:0)

  1. 是的,您是正确的。它创建axios的全局实例,该实例可用于Vue的所有组件。因此,您可以创建一个实例并将该实例的所有通用属性放在一起,而不是将axios导入多个文件并创建多个实例。例如,您可以在一个地方定义拦截器和URL,而不是将它们分布在各处。

  2. Vue在他们的网站中定义得很好

  

这里没有魔术发生。 $是Vue用于属性的约定   适用于所有实例。这样可以避免与任何   定义的数据,计算的属性或方法。

  1. 您可以通过多种方式进行操作。如果您在.vue文件中,则可以通过this.$axios()直接访问它。如果要通过Vuex商店访问它,则需要传递组件的上下文,或者可以在JS文件中使用它 import Vue from 'vue',并像Vue.prototype.$axios() < / p>

  2. 它也将在JS文件中工作。遵循数字3中的步骤。

  3. 请参阅数字4。