feat(core): support dynamic component via <component :is> (#320)

This commit is contained in:
宋铄运
2019-10-19 00:09:04 +08:00
committed by Evan You
parent d179918001
commit 7f23eaf661
6 changed files with 133 additions and 22 deletions

View File

@@ -1,13 +1,30 @@
import { currentRenderingInstance } from '../componentRenderUtils'
import { currentInstance, Component } from '../component'
import { Directive } from '../directives'
import { camelize, capitalize } from '@vue/shared'
import {
camelize,
capitalize,
isString,
isObject,
isFunction
} from '@vue/shared'
import { warn } from '../warning'
export function resolveComponent(name: string): Component | undefined {
return resolveAsset('components', name)
}
export function resolveDynamicComponent(
component: unknown
): Component | undefined {
if (!component) return
if (isString(component)) {
return resolveAsset('components', component)
} else if (isFunction(component) || isObject(component)) {
return component
}
}
export function resolveDirective(name: string): Directive | undefined {
return resolveAsset('directives', name)
}