App.tsx 683 B

1234567891011121314151617181920212223242526272829
  1. import { queenApi } from "queenjs";
  2. import { Provider } from "queenjs/adapter/vue";
  3. import { createApp, defineComponent } from "vue";
  4. import { Router } from "vue-router";
  5. import "./styles";
  6. let setModuleHooks: any[] = [];
  7. const App = defineComponent(() => {
  8. setModuleHooks.forEach((hook) => hook());
  9. setModuleHooks = [];
  10. return () => (
  11. <Provider>
  12. <router-view></router-view>
  13. </Provider>
  14. );
  15. });
  16. export function startApp(
  17. router: Router,
  18. hooks: any[] = [],
  19. callback?: (app: ReturnType<typeof createApp>) => void
  20. ) {
  21. setModuleHooks = hooks;
  22. queenApi.router = router;
  23. const app = createApp(App);
  24. callback?.(app);
  25. app.use(router).mount("#app");
  26. }