我有一个需要根据接收到的道具进行混合的组件。
const timerMixin = {
created() {
console.log("Timer mixin injected")
}
}
export default {
name: 'Component A',
props: ['hasTimer'],
mixins: this.hasTimer ? [timerMixin] : [] // fails because `this` is not available here
}
有没有一种方法可以将Mixin动态注入到组件中?
不幸的是,当前没有办法动态地添加或删除组件的混合。该
this
变种是不是可以在该范围。在最早的生命周期挂钩中,beforeCreate
已经加载了mixins。在您的情况下,根据
timerMixin
mixin中的内容,使用具有相关逻辑的独立计时器组件可能会有意义,这些计时器组件可以动态加载到的模板中Component A
。否则,始终加载mixin可能不会太糟(在性能方面),因为数据将是反应性的。