[英]Extending global mixin in Nuxtjs
I'm on Nuxtjs 2.15.7 and I have a mixin file like this:我在 Nuxtjs 2.15.7 上,我有一个这样的 mixin 文件:
utils.js :实用程序.js:
import Vue from "vue"
if (!Vue.__utils__) {
Vue.__utils__ = true
Vue.mixin({
data(){
return{
...
}
},
methods:{
...
}
})
}
I want to create another global mixin that extend my utils.js, for example:我想创建另一个扩展我的 utils.js 的全局 mixin,例如:
utils-another.js :实用程序-another.js :
import utils from '@/plugins/mixins/utils.js'
import Vue from "vue"
if (!Vue.__utils__) {
Vue.__utils__ = true
Vue.mixin({
// ... utils.js codes
data(){
return{
...
}
},
methods:{
...
}
})
}
based on some env property i decide to use utils.js
or utils-another.js
.基于一些 env 属性,我决定使用
utils.js
或utils-another.js
。 so how can I do that?那我该怎么做呢? I don't want to copy all utils.js codes to utils-another.js , that makes it hard for maintenance.
我不想将所有 utils.js 代码复制到 utils-another.js ,这使得维护变得困难。
// example utilsMixin1.js
export default {
data() {
return {
//...
}
},
methods: {
//...
}
}
// example utilsMixin2.js
export default {
data() {
return {
//...
}
},
}
Thus, you can make two mixins global.因此,您可以将两个 mixin 设为全局。
// utils-another.js:
import utilsMixin1 from '@/plugins/mixins/utilsMixin1.js'
import utilsMixin2 from '@/plugins/mixins/utilsMixin2.js'
import Vue from "vue"
if (!Vue.__utils__) {
Vue.__utils__ = true
Vue.mixin({
mixins: [utilsMixin1, utilsMixin2], // utils.js codes
})
}
or using only one mixin或者只使用一个 mixin
// utils-another.js:
import utilsMixin1 from '@/plugins/mixins/utilsMixin1.js'
import Vue from "vue"
if (!Vue.__utils__) {
Vue.__utils__ = true
Vue.mixin({
mixins: [utilsMixin1], // utils.js codes
})
}
Use global mixins sparsely and carefully, because it affects every single Vue instance created, including third party components.
谨慎使用全局mixins ,因为它会影响创建的每个 Vue 实例,包括第三方组件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.