我正在将Vue与Vuetify插件一起使用。
我正在使用mixin在全球范围内扩展Vue组件:
Vue.mixin({
mounted() {
console.log('Component mounted');
}
});
我在上面看到了自己所有组件的日志,但没有看到Vuetify的v-container
组件的日志。
奇怪的是,当我像这样检查该组件的选项时:
Vue.options.components['v-container'].options.mounted
我看到由我的mixin定义的mounted
函数已添加到挂钩数组中。
创建fiddle后,我可以看到它对所有其他Vuetify组件都有效。
来自docs:
请谨慎使用全局mixins,因为它会影响每个 创建了一个Vue实例,包括第三方组件。
我想念什么吗?
答案 0 :(得分:2)
该问题特定于使用中的组件v-container
。它是functional component,功能组件不能具有生命周期方法,因此将忽略在mixin中定义的方法。
the documentation描述了功能组件,
它不管理任何状态,不监视传递给它的任何状态,并且没有生命周期方法。真的,这只是一个带有一些道具的功能。