javascript - 在 Nuxtjs 中扩展全局 mixin
问题描述
我在 Nuxtjs 2.15.7 上,我有一个这样的 mixin 文件:
实用程序.js:
import Vue from "vue"
if (!Vue.__utils__) {
Vue.__utils__ = true
Vue.mixin({
data(){
return{
...
}
},
methods:{
...
}
})
}
我想创建另一个扩展我的 utils.js 的全局 mixin,例如:
实用程序-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:{
...
}
})
}
基于一些 env 属性,我决定使用utils.js
or utils-another.js
。那我该怎么做呢?我不想将所有 utils.js 代码复制到 utils-another.js ,这使得维护变得困难。
解决方案
您可以通过这种方式分离 mixin 代码
// example utilsMixin1.js
export default {
data() {
return {
//...
}
},
methods: {
//...
}
}
// example utilsMixin2.js
export default {
data() {
return {
//...
}
},
}
因此,您可以将两个 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
})
}
或者只使用一个 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
})
}
谨慎使用全局mixins,因为它会影响创建的每个 Vue 实例,包括第三方组件。
推荐阅读
- java - UserDefinedFileAttributeView 视图返回 null ,无法设置属性
- android - 使用 NextJS 中的路由器时,移动 chrome 浏览器本机共享按钮仅复制没有查询字符串的 url
- python - 使用 Python 从网站的搜索栏上刮取价格
- python - 可以使用 dataframe ix 进行分配,但不能检索
- android - TextInputLayout boxBackgroundColor 在“com.google.android.material:material:1.1.0-alpha02”之后不起作用
- git - 在 GIT 中中止合并后本地更改丢失
- laravel - 如何在代理后面不破坏 SignedURL 的情况下强制 route() 助手返回 HTTPS?
- c# - C#正则表达式匹配时间
- sql - 使用第二个表中的数据更新字段
- typescript - 如何将 void[] 转换为 U[]