Merge pull request #122 from cshaptx4869/patch-81
refactor: ♻️ 统一注册vue插件
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import type { App } from "vue";
|
||||||
import { createI18n } from "vue-i18n";
|
import { createI18n } from "vue-i18n";
|
||||||
import { useAppStoreHook } from "@/store/modules/app";
|
import { useAppStoreHook } from "@/store/modules/app";
|
||||||
// 本地语言包
|
// 本地语言包
|
||||||
@@ -22,4 +23,9 @@ const i18n = createI18n({
|
|||||||
globalInjection: true,
|
globalInjection: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 全局注册 i18n
|
||||||
|
export function setupI18n(app: App<Element>) {
|
||||||
|
app.use(i18n);
|
||||||
|
}
|
||||||
|
|
||||||
export default i18n;
|
export default i18n;
|
||||||
|
|||||||
18
src/main.ts
18
src/main.ts
@@ -1,9 +1,6 @@
|
|||||||
import { createApp } from "vue";
|
import { createApp } from "vue";
|
||||||
import App from "./App.vue";
|
import App from "./App.vue";
|
||||||
import router from "@/router";
|
import setupPlugins from "@/plugins";
|
||||||
import { setupStore } from "@/store";
|
|
||||||
import { setupDirective } from "@/directive";
|
|
||||||
import { setupElIcons, setupI18n, setupPermission } from "@/plugins";
|
|
||||||
|
|
||||||
// 本地SVG图标
|
// 本地SVG图标
|
||||||
import "virtual:svg-icons-register";
|
import "virtual:svg-icons-register";
|
||||||
@@ -15,14 +12,5 @@ import "uno.css";
|
|||||||
import "animate.css";
|
import "animate.css";
|
||||||
|
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
// 全局注册 自定义指令(directive)
|
app.use(setupPlugins);
|
||||||
setupDirective(app);
|
app.mount("#app");
|
||||||
// 全局注册 状态管理(store)
|
|
||||||
setupStore(app);
|
|
||||||
// 全局注册Element-plus图标
|
|
||||||
setupElIcons(app);
|
|
||||||
// 国际化
|
|
||||||
setupI18n(app);
|
|
||||||
// 注册动态路由
|
|
||||||
setupPermission();
|
|
||||||
app.use(router).mount("#app");
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
// 国际化
|
|
||||||
import i18n from "@/lang/index";
|
|
||||||
import type { App } from "vue";
|
|
||||||
|
|
||||||
export function setupI18n(app: App<Element>) {
|
|
||||||
app.use(i18n);
|
|
||||||
}
|
|
||||||
@@ -1,3 +1,24 @@
|
|||||||
export * from "./icons";
|
import { setupDirective } from "@/directive";
|
||||||
export * from "./i18n";
|
import { setupI18n } from "@/lang";
|
||||||
export * from "./permission";
|
import { setupRouter } from "@/router";
|
||||||
|
import { setupStore } from "@/store";
|
||||||
|
import type { App } from "vue";
|
||||||
|
import { setupElIcons } from "./icons";
|
||||||
|
import { setupPermission } from "./permission";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
install(app: App<Element>) {
|
||||||
|
// 自定义指令(directive)
|
||||||
|
setupDirective(app);
|
||||||
|
// 路由(router)
|
||||||
|
setupRouter(app);
|
||||||
|
// 状态管理(store)
|
||||||
|
setupStore(app);
|
||||||
|
// 国际化
|
||||||
|
setupI18n(app);
|
||||||
|
// Element-plus图标
|
||||||
|
setupElIcons(app);
|
||||||
|
// 路由守卫
|
||||||
|
setupPermission();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import type { App } from "vue";
|
||||||
import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";
|
import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";
|
||||||
|
|
||||||
export const Layout = () => import("@/layout/index.vue");
|
export const Layout = () => import("@/layout/index.vue");
|
||||||
@@ -117,6 +118,11 @@ const router = createRouter({
|
|||||||
scrollBehavior: () => ({ left: 0, top: 0 }),
|
scrollBehavior: () => ({ left: 0, top: 0 }),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 全局注册 router
|
||||||
|
export function setupRouter(app: App<Element>) {
|
||||||
|
app.use(router);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重置路由
|
* 重置路由
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user