我去mixins https://v2.vuejs.org/v2/guide/mixins.html就像普通的 vue.js 一样。唯一的区别 - 对于全局 mixins - 我将它们作为插件包含在内,但首先:
非全局混入
我会为我的 mixins 创建一个额外的文件夹。例如在一个/mixins/testMixin.js
export default {
methods: {
aCommonMethod () {}
}
}
然后导入布局、页面或组件并通过 mixins 对象添加它:
<script>
import commonMixin from '~/mixins/testMixin.js'
export default {
mixins: [commonMixin]
}
</script>
全局混入
例如在一个新文件中plugins/mixinCommonMethods.js
:
import Vue from 'vue'
Vue.mixin({
methods: {
aCommonMethod () {}
}
})
然后将该文件包含在nuxt.config.js
plugins: ['~/plugins/mixinCommonMethods']
之后,您将在任何地方都可以使用该方法并在那里调用它this.commonMethod()
。但这里有一个来自vue.js 文档 https://v2.vuejs.org/v2/guide/mixins.html#Global-Mixin:
谨慎谨慎地使用全局 mixins,因为它会影响创建的每个 Vue 实例,包括第三方组件。在大多数情况下,您应该仅将其用于自定义选项处理,如上例所示。将它们作为插件提供以避免重复应用也是一个好主意。
注入 $root 和上下文
另一种可能性是注入 $root 和上下文 https://nuxtjs.org/guide/plugins#inject-in-root-amp-context