main.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router, { setupRouter } from '@/router'
  4. import i18n from '@/i18n/index'
  5. import { setupStore } from '@/store'
  6. import { setupNaive, setupDirectives, setupCustomComponents } from '@/plugins'
  7. import { AppProvider } from '@/components/AppProvider/index'
  8. import { setHtmlTheme } from '@/utils'
  9. async function appInit() {
  10. const appProvider = createApp(AppProvider)
  11. const app = createApp(App)
  12. // 注册全局常用的 naive-ui 组件
  13. setupNaive(app)
  14. // 注册全局自定义指令
  15. setupDirectives(app)
  16. // 注册全局自定义组件
  17. setupCustomComponents(app)
  18. // 挂载状态管理
  19. setupStore(app)
  20. // 解决路由守卫,Axios中可使用,Dialog,Message 等全局组件
  21. appProvider.mount('#appProvider', true)
  22. // 挂载路由
  23. setupRouter(app)
  24. // 路由准备就绪后挂载APP实例
  25. await router.isReady()
  26. // Store 准备就绪后处理主题色
  27. setHtmlTheme()
  28. // 语言注册
  29. app.use(i18n)
  30. app.mount('#app', true)
  31. }
  32. void appInit()