component.ts 763 B

123456789101112131415161718192021
  1. import { App, defineComponent, ComponentOptions } from "vue";
  2. export function createComponent(name: string) {
  3. return function(_component: ComponentOptions) {
  4. _component.baseName = name;
  5. _component.name = "nut-" + name;
  6. _component.install = (vue: App) => {
  7. vue.component(_component.name as string, _component);
  8. };
  9. return defineComponent(_component);
  10. } as typeof defineComponent;
  11. }
  12. export function createDemoComponent(name: string) {
  13. return function(_component: ComponentOptions) {
  14. _component.baseName = name;
  15. _component.name = "demo-" + name;
  16. _component.install = (vue: App) => {
  17. vue.component(_component.name as string, _component);
  18. };
  19. return defineComponent(_component);
  20. } as typeof defineComponent;
  21. }