Функции хуков, определенные mixin, не требуются для стороннего компонента плагина - PullRequest
1 голос
/ 06 июня 2019

Я использую Vue с плагином Vuetify.

Я расширяю компоненты Vue по всему миру с помощью миксина:

Vue.mixin({
    mounted() {
        console.log('Component mounted');
    }
});

Я вижу журнал выше для всех моих собственных компонентов, но не для v-container компонента Vuetify.

Странно, когда я проверяю параметры этого компонента примерно так:

Vue.options.components['v-container'].options.mounted

Я вижу, что функция mounted, определенная моим миксином, добавляется в массив хуков.

После создания скрипки я смог убедиться, что она работает для всех других компонентов Vuetify.

Из документов :

Используйте глобальные миксины редко и осторожно, потому что это влияет на каждый создан один экземпляр Vue, включая сторонние компоненты.

Я что-то упустил?

1 Ответ

2 голосов
/ 06 июня 2019

Проблема специфична для используемого компонента, v-container. Это функциональный компонент , и функциональные компоненты не могут иметь методы жизненного цикла, поэтому определенные в mixin будут игнорироваться.

Как документация описывает функциональные компоненты,

Он не управляет никаким состоянием, наблюдает за любым состоянием, переданным ему, и у него нет методов жизненного цикла. На самом деле, это только функция с некоторыми реквизитами.

...