在我的 Vue.js 应用程序中,我想要一些全局函数。例如callApi()
,每当我需要访问我的数据时,我都可以调用它。
包含这些功能以便我可以在所有组件中访问它的最佳方式是什么?
- 我应该创建一个文件 functions.js 并将其包含在我的 main.js 中吗?
- 我应该创建一个 Mixin 并将其包含在我的 main.js 中吗?
- 有更好的选择吗?
在我的 Vue.js 应用程序中,我想要一些全局函数。例如callApi()
,每当我需要访问我的数据时,我都可以调用它。
包含这些功能以便我可以在所有组件中访问它的最佳方式是什么?
你最好的选择是一个插件,它可以让你向全局 vue 系统添加功能。
[来自vuejs 文档]
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);
我有一个文件,其功能类似于 func.js,如下所示
export const func = {
functionName: (data) => {
return something
}
}
在 main.js 添加 2 个字符串
import {func} from './func.js'
Vue.prototype.$func = func
如果在下面的脚本标记中,您可以从所有组件中使用
this.$func.functionName(somedata)
或者如果模板标签喜欢
$func.functionName(somedata)
Mixin 也可以在全球范围内注册。https://vuejs.org/v2/guide/mixins.html#Global-Mixin