vant/src/utils/create/component.ts
2020-09-27 17:11:43 +08:00

18 lines
491 B
TypeScript

/**
* Create a basic component with common options
*/
import { App, defineComponent, ComponentOptionsWithObjectProps } from 'vue';
import { camelize } from '..';
export function createComponent(name: string) {
return function (sfc: ComponentOptionsWithObjectProps) {
sfc.name = name;
sfc.install = (app: App) => {
app.component(name as string, sfc);
app.component(camelize(`-${name}`), sfc);
};
return defineComponent(sfc);
} as typeof defineComponent;
}