在Vue.js中包含全局函数

时间:2016-09-07 14:47:08

标签: javascript vue.js vue-resource vue-component

在我的Vue.js应用程序中,我想要一些全局函数。例如,callApi()函数,每当我需要访问我的数据时,我都可以调用它。

包含这些功能的最佳方法是什么,以便我可以在所有组件中访问它?

  • 我应该创建一个文件functions.js并将其包含在我的main.js中吗?
  • 我应该创建一个Mixin并将其包含在我的main.js中吗?
  • 有更好的选择吗?

3 个答案:

答案 0 :(得分:15)

您最好的选择是插件,它允许您向全局vue系统添加功能。

[来自vuejs Docs]

MyPlugin.install = function (Vue, options) {

// 1. add global method or property
Vue.myGlobalMethod = ...

// 2. add a global asset
Vue.directive('my-directive', {})

// 3. add an instance method
Vue.prototype.$myMethod = ...

}

然后你只需添加

Vue.use(MyPlugin)
在调用函数之前,在代码中

Vue.myGlobalMethod(parameters);

或在你的情况下

Vue.callApi(parameters);

答案 1 :(得分:4)

Mixins也可以在全球注册。 https://vuejs.org/v2/guide/mixins.html#Global-Mixin

答案 2 :(得分:0)

我有一个功能类似于func.js的文件 像下面的

WebpackNotifierPlugin

在main.js中添加2个字符串

export const func = {
   functionName: (data) => {
      return something  
    }
}

,并且可以在所有脚本组件中使用(如下面的

所示)
import {func} from './func.js'

Vue.prototype.$func = func

或是否使用模板标签

this.$func.functionName(somedata)