由mixin定义的挂钩函数未调用第三方插件组件

时间:2019-06-06 18:38:03

标签: vue.js vuetify.js mixins

我正在将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实例,包括第三方组件。

我想念什么吗?

1 个答案:

答案 0 :(得分:2)

该问题特定于使用中的组件v-container。它是functional component,功能组件不能具有生命周期方法,因此将忽略在mixin中定义的方法。

the documentation描述了功能组件,

  

它不管理任何状态,不监视传递给它的任何状态,并且没有生命周期方法。真的,这只是一个带有一些道具的功能。