goview_vue/src/main.ts

46 lines
1.1 KiB
TypeScript
Raw Normal View History

import { createApp } from 'vue'
import App from './App.vue'
import router, { setupRouter } from '@/router'
import i18n from '@/i18n/index'
import { setupStore } from '@/store'
2021-12-19 19:19:46 +08:00
import { setupNaive, setupDirectives, setupCustomComponents } from '@/plugins'
import { AppProvider } from '@/components/Application'
2021-12-15 22:16:16 +08:00
import { setHtmlTheme } from '@/utils/style'
2021-12-10 14:11:49 +08:00
async function appInit() {
const appProvider = createApp(AppProvider)
2021-12-10 14:11:49 +08:00
const app = createApp(App)
2021-12-10 14:11:49 +08:00
// 注册全局常用的 naive-ui 组件
setupNaive(app)
2021-12-10 14:11:49 +08:00
2021-12-19 19:19:46 +08:00
// 注册全局自定义指令
setupDirectives(app)
2021-12-10 14:11:49 +08:00
2021-12-19 19:19:46 +08:00
// 注册全局自定义组件
setupCustomComponents(app)
2021-12-10 14:11:49 +08:00
// 挂载状态管理
setupStore(app)
2021-12-10 14:11:49 +08:00
// 优先挂载一下 Provider 解决路由守卫Axios中可使用DialogMessage 等之类组件
appProvider.mount('#appProvider', true)
2021-12-10 14:11:49 +08:00
// 挂载路由
await setupRouter(app)
2021-12-10 14:11:49 +08:00
// 路由准备就绪后挂载APP实例
await router.isReady()
// Store 准备就绪后处理主题色
setHtmlTheme()
// 语言注册
app.use(i18n)
2021-12-10 14:11:49 +08:00
app.mount('#app', true)
2021-12-10 14:11:49 +08:00
}
void appInit()