main.ts 959 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { createApp } from 'vue';
  2. import App from './App.vue';
  3. import router, { setupRouter } from '@/router';
  4. import { setupStore } from '@/store';
  5. import { setupNaive, setupDirectives } from '@/plugins';
  6. import { AppProvider } from '@/components/Application';
  7. import { setHtmlTheme } from '@/utils/style'
  8. async function appInit() {
  9. const appProvider = createApp(AppProvider);
  10. const app = createApp(App);
  11. // 注册全局常用的 naive-ui 组件
  12. setupNaive(app);
  13. // 注册全局自定义指令,如:v-permission权限指令
  14. setupDirectives(app);
  15. // 挂载状态管理
  16. setupStore(app);
  17. // 处理主题色
  18. setHtmlTheme()
  19. //优先挂载一下 Provider 解决路由守卫,Axios中可使用,Dialog,Message 等之类组件
  20. appProvider.mount('#appProvider', true);
  21. // 挂载路由
  22. await setupRouter(app);
  23. // 路由准备就绪后挂载APP实例
  24. await router.isReady();
  25. app.mount('#app', true);
  26. }
  27. void appInit();