main.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 { GoAppProvider } from '@/components/GoAppProvider/index'
  8. import { setHtmlTheme } from '@/utils'
  9. // 引入全局样式
  10. import '@/styles/pages/index.scss'
  11. // 引入动画
  12. import 'animate.css/animate.min.css'
  13. // 引入标尺
  14. import 'vue3-sketch-ruler/lib/style.css'
  15. async function appInit() {
  16. const goAppProvider = createApp(GoAppProvider)
  17. const app = createApp(App)
  18. // 注册全局常用的 naive-ui 组件
  19. setupNaive(app)
  20. // 注册全局自定义指令
  21. setupDirectives(app)
  22. // 注册全局自定义组件
  23. setupCustomComponents(app)
  24. // 挂载状态管理
  25. setupStore(app)
  26. // 解决路由守卫,Axios中可使用,Dialog,Message 等全局组件
  27. goAppProvider.mount('#appProvider', true)
  28. // 挂载路由
  29. setupRouter(app)
  30. // 路由准备就绪后挂载APP实例
  31. await router.isReady()
  32. // Store 准备就绪后处理主题色
  33. setHtmlTheme()
  34. // 语言注册
  35. app.use(i18n)
  36. // 挂载到页面
  37. app.mount('#app', true)
  38. // 挂载到 window
  39. window['$vue'] = app
  40. }
  41. void appInit()