判断一个组件是否加载了 Vue 3,如果没有加载一个 Generic 组件

Determine if a component is loaded Vue 3 and load a Generic component if not

我正在将一个项目从 Vue 2 迁移到 Vue 3。我需要确定是否加载了一个组件,如果没有加载一个 GenericComponent 作为占位符。在 Vue 2 中,我可以使用示例代码来完成。我一直在阅读 Vue 3 文档,但找不到任何相关信息。

import Vue from 'vue'
import GenericComponent from 'components/GenericComponent'

if (!Vue.options.components['custom-component']) {
  Vue.component('custom-component', GenericComponent)
}

你可以这样做:

import { getCurrentInstance } from 'vue';
const app = getCurrentInstance()
console.log('app component', app?.appContext.components['component-name'])

请注意 appContext.components 将仅包含全局组件。