其实我想知道在#NUXT.JS中存储常用组件方法的位置。
我尝试过的事情。 - >在中间件中存储公共代码(无用)因为根据我的知识,中间件只能处理对服务器的请求和响应。
methods: {
// states methods.
SwitchManager: function (__dataContainer, __key, __value) {
// stand alone debugger for this module.
let debug = __debug('computed:_3levelSwitch')
// debug showing function loaded.
debug('(h1:sizeCheck) creating switch..')
// switch.
switch (__key) {
// fake allow set value to true of given key
default:
this[__dataContainer][__key][__value] = true
break
}
return this[__dataContainer][__key][__value]
},
SizeCheck: function (__size) {
// stand alone debugger for this module.
let debug = __debug('tags:p')
// debug showing function loaded.
debug('(p:sizeCheck) checking..')
// init switch.
this.SwitchManager('pill', 'size', __size)
},
StateCheck: function (__state) {
// stand alone debugger for this module.
let debug = __debug('tags:h1')
// debug showing function loaded.
debug('(h1:sizeCheck) checking..')
// init switch.
this.SwitchManager('pill', 'state', __state)
}
},
created () {
// h1 tag size check
this.SizeCheck(this.size)
this.StateCheck(this.state)
}
答案 0 :(得分:37)
我和普通的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/mixinCommonMethod']
之后,您可以将该方法随处可用,并使用this.commonMethod()
进行调用。但是这里有来自vue.js文档的建议:
稀疏地使用全局mixins,因为它会影响每个创建的Vue实例,包括第三方组件。在大多数情况下,您只应将其用于自定义选项处理,如上例所示。将它们作为插件发送以避免重复应用也是一个好主意。
另一种可能性是 Inject in $root & context