【发布时间】:2016-07-29 04:24:44
【问题描述】:
我正在尝试创建一个全局可用的 mixin,但不会自动注入到每个组件中。即我不想要这个:Vue.mixin({...});
我根据these 说明设置项目。 This 是我的项目结构。我还有assets/js/mixins.js 文件,其中包含我的mixin。
我希望能够在我的个人 .vue 文件中执行此操作(我的许多组件使用 myMixin,但不是全部):
<script>
export default {
mixins:[myMixin],
data:{....}
}
</script>
<template>
<!-- some template code -->
</template>
到目前为止,唯一的方法是将此行添加到需要它的每个组件的顶部:
import {myMixin} from './assets/js/mixins.js"
但是有没有办法做到这一点并让myMixin 变量在全球范围内可用?我已经尝试将它包含在 main.js 和 app.vue 中,但如果我尝试在任何子组件中使用 myMixin,我仍然会收到“myMixin 未定义”错误。
或者是否有另一种方法来注册一个不需要我在每个组件中输入mixins.js 文件的路径的mixin?
【问题讨论】:
-
这不是一个好主意。使用捆绑器和模块的原因之一是防止使用全局变量。我们付出的代价是编写导入语句,这是有充分理由的。你总是知道你的模块依赖来自哪里,而不必猜测你在哪里引入了 this 全局或 that 一个。
标签: ecmascript-6 webpack vue.js es6-module-loader