【发布时间】:2021-09-23 08:07:15
【问题描述】:
我在我的项目中创建了许多 mixin,现在我要做的是将所有 mixin 导入 mixins/index.js 文件以及任何需要的组件或页面中,我只需从 mixins/index.js 导入这些 mixin。
现在我怀疑我是否会导入所有不需要的 mixins 还是只导入我使用的 mixins 文件?
假设我在 mixins/index.js 中创建和导入了这些 mixim
import a from 'mixins/a.js'
import b from 'mixins/b.js'
import c from 'mixins/c.js'
import d from 'mixins/d.js'
import e from 'mixins/e.js'
export {
a,
b,
c,
d,
e
}
现在让我在我的'x' components 中说我将导入'a' mixins。
import { a } from 'mixins/index.js'
export default {
mixins: [a]
}
在这种情况下,我的'x' components 中只需要'a' mixins,但由于我是从mixins/index.js 导入的,我拥有所有mixin 的所有静态导入,这是否也会加载不需要的mixins?
【问题讨论】:
-
答案是否取决于设置。它不应该加载未使用的 mixin,但它可以。
-
@EstusFlask 你能解释一下在什么情况下它也可以加载所有不需要的 mixin 吗?什么设置会导致这种情况发生?现在我正在研究nuxt js,所有配置都是默认设置,设置中没有什么特别的。
-
这取决于 Nuxt 内部使用的 Webpack 设置。我希望它没问题,但这不是可以保证的。影响这一点的东西称为摇树。如果出现问题,未使用的东西最终会在捆绑包中。 Tree Shaking 通常只发生在 prod 构建中,因此您可以期望 dev 构建很大,原因有很多,包括这个。
-
知道了 感谢您分享信息。
标签: javascript vue.js mixins