@melt-js/docs-bag 2026.11.7-1 → 2026.11.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/404.html +5 -5
- package/dist/README.html +10 -10
- package/dist/assets/{README.md.DGU5lUfa.js → README.md.D8R8Eb23.js} +1 -1
- package/dist/assets/{README.md.DGU5lUfa.lean.js → README.md.D8R8Eb23.lean.js} +1 -1
- package/dist/assets/{app.Ds2SzgsS.js → app.B2EI2o4q.js} +1 -1
- package/dist/assets/chunks/@localSearchIndexroot.Chqo2dFE.js +1 -0
- package/dist/assets/chunks/{VPLocalSearchBox.vT7UNiG_.js → VPLocalSearchBox.DY28kF4x.js} +5 -5
- package/dist/assets/chunks/{framework.DaGrNpXH.js → framework.Olv9GB1A.js} +1 -1
- package/dist/assets/chunks/{theme.Caar5PdV.js → theme.BJkR0Hu5.js} +2 -2
- package/dist/assets/{guide_complete-host-app.md.BK8IlbVU.js → guide_complete-host-app.md.CBuOgyl8.js} +1 -1
- package/dist/assets/{guide_complete-host-app.md.BK8IlbVU.lean.js → guide_complete-host-app.md.CBuOgyl8.lean.js} +1 -1
- package/dist/assets/{guide_create-project.md.DdUrJ9TP.js → guide_create-project.md.B2KkXWnI.js} +1 -1
- package/dist/assets/{guide_create-project.md.DdUrJ9TP.lean.js → guide_create-project.md.B2KkXWnI.lean.js} +1 -1
- package/dist/assets/{guide_deployment.md.Bok2OVNY.js → guide_deployment.md.BrvgEFf0.js} +1 -1
- package/dist/assets/{guide_deployment.md.Bok2OVNY.lean.js → guide_deployment.md.BrvgEFf0.lean.js} +1 -1
- package/dist/assets/{guide_dictionary-system.md.CBwI_GoJ.js → guide_dictionary-system.md.hS_2-jYz.js} +1 -1
- package/dist/assets/{guide_dictionary-system.md.CBwI_GoJ.lean.js → guide_dictionary-system.md.hS_2-jYz.lean.js} +1 -1
- package/dist/assets/{guide_getting-started.md.DY8_yjmu.js → guide_getting-started.md.0nvT0khJ.js} +1 -1
- package/dist/assets/{guide_getting-started.md.DY8_yjmu.lean.js → guide_getting-started.md.0nvT0khJ.lean.js} +1 -1
- package/dist/assets/{guide_host_auth-and-permissions.md.0lZV8yHP.js → guide_host_auth-and-permissions.md.Pr66-VM-.js} +1 -1
- package/dist/assets/{guide_host_auth-and-permissions.md.0lZV8yHP.lean.js → guide_host_auth-and-permissions.md.Pr66-VM-.lean.js} +1 -1
- package/dist/assets/{guide_host_bootstrap.md.lEHuoLl6.js → guide_host_bootstrap.md.DKFeJyTi.js} +1 -1
- package/dist/assets/{guide_host_bootstrap.md.lEHuoLl6.lean.js → guide_host_bootstrap.md.DKFeJyTi.lean.js} +1 -1
- package/dist/assets/{guide_host_routing-and-menu.md.BoIgnh8N.js → guide_host_routing-and-menu.md.CQaMO4vj.js} +1 -1
- package/dist/assets/{guide_host_routing-and-menu.md.BoIgnh8N.lean.js → guide_host_routing-and-menu.md.CQaMO4vj.lean.js} +1 -1
- package/dist/assets/{guide_introduction.md.iXNk9q0Q.js → guide_introduction.md.tg6wBrpR.js} +1 -1
- package/dist/assets/{guide_introduction.md.iXNk9q0Q.lean.js → guide_introduction.md.tg6wBrpR.lean.js} +1 -1
- package/dist/assets/{guide_local-debugging.md.DUTHJNrd.js → guide_local-debugging.md.DVHeXzws.js} +1 -1
- package/dist/assets/{guide_local-debugging.md.DUTHJNrd.lean.js → guide_local-debugging.md.DVHeXzws.lean.js} +1 -1
- package/dist/assets/{guide_network-request.md.CNxuQztV.js → guide_network-request.md.BlxKmm59.js} +1 -1
- package/dist/assets/{guide_network-request.md.CNxuQztV.lean.js → guide_network-request.md.BlxKmm59.lean.js} +1 -1
- package/dist/assets/{guide_official-plugins_index.md.BoDXHNxM.js → guide_official-plugins_index.md.BF-gWYVU.js} +1 -1
- package/dist/assets/{guide_official-plugins_index.md.BoDXHNxM.lean.js → guide_official-plugins_index.md.BF-gWYVU.lean.js} +1 -1
- package/dist/assets/{guide_official-plugins_install-and-toggle.md.Dr7JbEG0.js → guide_official-plugins_install-and-toggle.md.B35ne8VL.js} +1 -1
- package/dist/assets/{guide_official-plugins_install-and-toggle.md.Dr7JbEG0.lean.js → guide_official-plugins_install-and-toggle.md.B35ne8VL.lean.js} +1 -1
- package/dist/assets/{guide_official-plugins_shop.md.DiOYHXuP.js → guide_official-plugins_shop.md.BGGP886L.js} +1 -1
- package/dist/assets/{guide_official-plugins_shop.md.DiOYHXuP.lean.js → guide_official-plugins_shop.md.BGGP886L.lean.js} +1 -1
- package/dist/assets/{guide_official-plugins_sys-setting.md.zAtX0VM9.js → guide_official-plugins_sys-setting.md.BwiJzRiL.js} +1 -1
- package/dist/assets/{guide_official-plugins_sys-setting.md.zAtX0VM9.lean.js → guide_official-plugins_sys-setting.md.BwiJzRiL.lean.js} +1 -1
- package/dist/assets/{guide_package-core.md.C4zUrJyx.js → guide_package-core.md.D1xrMRok.js} +1 -1
- package/dist/assets/{guide_package-core.md.C4zUrJyx.lean.js → guide_package-core.md.D1xrMRok.lean.js} +1 -1
- package/dist/assets/{guide_package-ecosystem.md.D7XqIXVb.js → guide_package-ecosystem.md.Dl2r9NSa.js} +1 -1
- package/dist/assets/{guide_package-ecosystem.md.D7XqIXVb.lean.js → guide_package-ecosystem.md.Dl2r9NSa.lean.js} +1 -1
- package/dist/assets/{guide_package-plugin-shop.md.fAmp9PnM.js → guide_package-plugin-shop.md.BaIhzPDV.js} +1 -1
- package/dist/assets/{guide_package-plugin-shop.md.fAmp9PnM.lean.js → guide_package-plugin-shop.md.BaIhzPDV.lean.js} +1 -1
- package/dist/assets/{guide_package-plugin-sys-setting.md.B_eYlFsp.js → guide_package-plugin-sys-setting.md.C0ROCk-O.js} +1 -1
- package/dist/assets/{guide_package-plugin-sys-setting.md.B_eYlFsp.lean.js → guide_package-plugin-sys-setting.md.C0ROCk-O.lean.js} +1 -1
- package/dist/assets/{guide_package-publishing.md.B457Mv-9.js → guide_package-publishing.md.De2Y0rte.js} +1 -1
- package/dist/assets/{guide_package-publishing.md.B457Mv-9.lean.js → guide_package-publishing.md.De2Y0rte.lean.js} +1 -1
- package/dist/assets/{guide_package-request.md.BxsPauw8.js → guide_package-request.md.DugGGXSX.js} +1 -1
- package/dist/assets/{guide_package-request.md.BxsPauw8.lean.js → guide_package-request.md.DugGGXSX.lean.js} +1 -1
- package/dist/assets/{guide_package-ui.md.BTeJ94Oh.js → guide_package-ui.md.BPCpNCIF.js} +1 -1
- package/dist/assets/{guide_package-ui.md.BTeJ94Oh.lean.js → guide_package-ui.md.BPCpNCIF.lean.js} +1 -1
- package/dist/assets/{guide_permissions.md.DAZn1vjP.js → guide_permissions.md.DHnKaha_.js} +1 -1
- package/dist/assets/{guide_permissions.md.DAZn1vjP.lean.js → guide_permissions.md.DHnKaha_.lean.js} +1 -1
- package/dist/assets/{guide_plugin-development.md.BUmEsBpT.js → guide_plugin-development.md.DeFWVfLN.js} +1 -1
- package/dist/assets/{guide_plugin-development.md.BUmEsBpT.lean.js → guide_plugin-development.md.DeFWVfLN.lean.js} +1 -1
- package/dist/assets/{guide_plugins_admin-plugin.md.DPkzLbtK.js → guide_plugins_admin-plugin.md.XLffV1LB.js} +1 -1
- package/dist/assets/{guide_plugins_admin-plugin.md.DPkzLbtK.lean.js → guide_plugins_admin-plugin.md.XLffV1LB.lean.js} +1 -1
- package/dist/assets/{guide_plugins_create-plugin.md.DvTO3X0-.js → guide_plugins_create-plugin.md.Br3OIR1m.js} +1 -1
- package/dist/assets/{guide_plugins_create-plugin.md.DvTO3X0-.lean.js → guide_plugins_create-plugin.md.Br3OIR1m.lean.js} +1 -1
- package/dist/assets/{guide_plugins_debug-and-publish.md.6Vl--EVC.js → guide_plugins_debug-and-publish.md.C5ZbCito.js} +1 -1
- package/dist/assets/{guide_plugins_debug-and-publish.md.6Vl--EVC.lean.js → guide_plugins_debug-and-publish.md.C5ZbCito.lean.js} +1 -1
- package/dist/assets/{guide_plugins_lifecycle-and-dependencies.md.D4pLzazK.js → guide_plugins_lifecycle-and-dependencies.md.CV7nFME-.js} +1 -1
- package/dist/assets/{guide_plugins_lifecycle-and-dependencies.md.D4pLzazK.lean.js → guide_plugins_lifecycle-and-dependencies.md.CV7nFME-.lean.js} +1 -1
- package/dist/assets/{guide_plugins_permissions-and-settings.md.t7QTgL3Q.js → guide_plugins_permissions-and-settings.md.B_MrVXY_.js} +1 -1
- package/dist/assets/{guide_plugins_permissions-and-settings.md.t7QTgL3Q.lean.js → guide_plugins_permissions-and-settings.md.B_MrVXY_.lean.js} +1 -1
- package/dist/assets/{guide_plugins_routes-menus-locales.md.yqtK9Ucl.js → guide_plugins_routes-menus-locales.md.heaL1_wi.js} +1 -1
- package/dist/assets/{guide_plugins_routes-menus-locales.md.yqtK9Ucl.lean.js → guide_plugins_routes-menus-locales.md.heaL1_wi.lean.js} +1 -1
- package/dist/assets/{guide_pro-form.md.CMhQ6QRl.js → guide_pro-form.md.L9CKqs5C.js} +1 -1
- package/dist/assets/{guide_pro-form.md.CMhQ6QRl.lean.js → guide_pro-form.md.L9CKqs5C.lean.js} +1 -1
- package/dist/assets/{guide_pro-table.md.I6fEG_lQ.js → guide_pro-table.md.DlhJG49R.js} +1 -1
- package/dist/assets/{guide_pro-table.md.I6fEG_lQ.lean.js → guide_pro-table.md.DlhJG49R.lean.js} +1 -1
- package/dist/assets/{guide_request-and-components.md.BQIKZknw.js → guide_request-and-components.md.CeEnrOuY.js} +1 -1
- package/dist/assets/{guide_request-and-components.md.BQIKZknw.lean.js → guide_request-and-components.md.CeEnrOuY.lean.js} +1 -1
- package/dist/assets/{guide_routing-and-menu.md.BWLWiMg1.js → guide_routing-and-menu.md.09TL-ILh.js} +1 -1
- package/dist/assets/{guide_routing-and-menu.md.BWLWiMg1.lean.js → guide_routing-and-menu.md.09TL-ILh.lean.js} +1 -1
- package/dist/assets/{guide_theme-tokens.md.BZ_Qwz_U.js → guide_theme-tokens.md.Cfn7RM_2.js} +1 -1
- package/dist/assets/{guide_theme-tokens.md.BZ_Qwz_U.lean.js → guide_theme-tokens.md.Cfn7RM_2.lean.js} +1 -1
- package/dist/assets/{index.md.RFoPWDBP.js → index.md.ClEmxxY1.js} +1 -1
- package/dist/assets/{index.md.RFoPWDBP.lean.js → index.md.ClEmxxY1.lean.js} +1 -1
- package/dist/assets/style.IeUynjWL.css +1 -0
- package/dist/guide/complete-host-app.html +10 -10
- package/dist/guide/create-project.html +10 -10
- package/dist/guide/deployment.html +10 -10
- package/dist/guide/dictionary-system.html +10 -10
- package/dist/guide/getting-started.html +10 -10
- package/dist/guide/host/auth-and-permissions.html +10 -10
- package/dist/guide/host/bootstrap.html +10 -10
- package/dist/guide/host/routing-and-menu.html +10 -10
- package/dist/guide/introduction.html +10 -10
- package/dist/guide/local-debugging.html +10 -10
- package/dist/guide/network-request.html +10 -10
- package/dist/guide/official-plugins/index.html +10 -10
- package/dist/guide/official-plugins/install-and-toggle.html +10 -10
- package/dist/guide/official-plugins/shop.html +10 -10
- package/dist/guide/official-plugins/sys-setting.html +10 -10
- package/dist/guide/package-core.html +10 -10
- package/dist/guide/package-ecosystem.html +9 -9
- package/dist/guide/package-plugin-shop.html +10 -10
- package/dist/guide/package-plugin-sys-setting.html +10 -10
- package/dist/guide/package-publishing.html +10 -10
- package/dist/guide/package-request.html +10 -10
- package/dist/guide/package-ui.html +10 -10
- package/dist/guide/permissions.html +10 -10
- package/dist/guide/plugin-development.html +10 -10
- package/dist/guide/plugins/admin-plugin.html +10 -10
- package/dist/guide/plugins/create-plugin.html +10 -10
- package/dist/guide/plugins/debug-and-publish.html +10 -10
- package/dist/guide/plugins/lifecycle-and-dependencies.html +10 -10
- package/dist/guide/plugins/permissions-and-settings.html +10 -10
- package/dist/guide/plugins/routes-menus-locales.html +10 -10
- package/dist/guide/pro-form.html +10 -10
- package/dist/guide/pro-table.html +10 -10
- package/dist/guide/request-and-components.html +10 -10
- package/dist/guide/routing-and-menu.html +10 -10
- package/dist/guide/theme-tokens.html +10 -10
- package/dist/hashmap.json +1 -1
- package/dist/index.html +9 -9
- package/package.json +12 -9
- package/dist/assets/chunks/@localSearchIndexroot.UvrVlibN.js +0 -1
- package/dist/assets/style.BUkIHM41.css +0 -1
|
@@ -6,19 +6,19 @@
|
|
|
6
6
|
<title>登录与权限 | Vue-Bag-Admin</title>
|
|
7
7
|
<meta name="description" content="基于 Vue3 + Vite6 + Naive UI + Pinia + Strapi5 的中后台系统框架">
|
|
8
8
|
<meta name="generator" content="VitePress v1.6.4">
|
|
9
|
-
<link rel="preload stylesheet" href="/@melt-js/docs-bag@2026.11.
|
|
10
|
-
<link rel="preload stylesheet" href="/@melt-js/docs-bag@2026.11.
|
|
9
|
+
<link rel="preload stylesheet" href="/@melt-js/docs-bag@2026.11.16/dist/assets/style.IeUynjWL.css" as="style">
|
|
10
|
+
<link rel="preload stylesheet" href="/@melt-js/docs-bag@2026.11.16/dist/vp-icons.css" as="style">
|
|
11
11
|
|
|
12
|
-
<script type="module" src="/@melt-js/docs-bag@2026.11.
|
|
13
|
-
<link rel="preload" href="/@melt-js/docs-bag@2026.11.
|
|
14
|
-
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.
|
|
15
|
-
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.
|
|
16
|
-
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.
|
|
12
|
+
<script type="module" src="/@melt-js/docs-bag@2026.11.16/dist/assets/app.B2EI2o4q.js"></script>
|
|
13
|
+
<link rel="preload" href="/@melt-js/docs-bag@2026.11.16/dist/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
|
14
|
+
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.16/dist/assets/chunks/theme.BJkR0Hu5.js">
|
|
15
|
+
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.16/dist/assets/chunks/framework.Olv9GB1A.js">
|
|
16
|
+
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.16/dist/assets/guide_host_auth-and-permissions.md.Pr66-VM-.lean.js">
|
|
17
17
|
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"dark",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
18
18
|
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
|
21
|
-
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/@melt-js/docs-bag@2026.11.7-1/dist/" data-v-1168a8e4><!--[--><!--]--><!--[--><img class="VPImage logo" src="/@melt-js/docs-bag@2026.11.7-1/dist/logo.png" alt data-v-8426fc1a><!--]--><span data-v-1168a8e4>Vue-Bag-Admin</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/@melt-js/docs-bag@2026.11.7-1/dist/" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/introduction.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://hangjob.github.io/vue-bag-admin/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>在线预览</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-dc692963 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-cf11d7a2><span class="text" data-v-cf11d7a2><!----><span data-v-cf11d7a2>社区</span><span class="vpi-chevron-down text-icon" data-v-cf11d7a2></span></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><div class="items" data-v-b98bc113><!--[--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link" href="/@melt-js/docs-bag@2026.11.7-1/dist/#community" data-v-35975db6><!--[--><span data-v-35975db6>微信群</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link vp-external-link-icon" href="https://www.itnavs.com/" target="_blank" rel="noreferrer" data-v-35975db6><!--[--><span data-v-35975db6>知航驿站</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link vp-external-link-icon" href="https://yh.itnavs.com/contact" target="_blank" rel="noreferrer" data-v-35975db6><!--[--><span data-v-35975db6>合作机会</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://www.npmjs.com/package/@melt-js/libs-bag-entry" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>v2026.11.7</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hangjob/vue-bag-admin/tree/next" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hangjob/vue-bag-admin/tree/next" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>开始使用</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/introduction.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>项目介绍</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/getting-started.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>快速上手</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/create-project.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>创建项目</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 has-active" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>核心开发</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/host/bootstrap.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>初始化宿主</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/host/routing-and-menu.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>路由与菜单</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/host/auth-and-permissions.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>登录与权限</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/request-and-components.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>请求与组件</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>官方插件</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/official-plugins/" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>插件总览</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/official-plugins/install-and-toggle.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>安装与启停</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/official-plugins/shop.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>商城插件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/official-plugins/sys-setting.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>系统设置插件</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>插件开发</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/create-plugin.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>创建插件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/admin-plugin.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>AdminPlugin 配置</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/routes-menus-locales.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>路由、菜单与多语言</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/permissions-and-settings.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>权限与配置项</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/lifecycle-and-dependencies.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>生命周期与依赖</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/debug-and-publish.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>调试与发布</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _@melt-js_docs-bag@2026_11_7-1_dist_guide_host_auth-and-permissions" data-v-39a288b8><div><h1 id="登录与权限" tabindex="-1">登录与权限 <a class="header-anchor" href="#登录与权限" aria-label="Permalink to "登录与权限""></a></h1><p>Vue-Bag-Admin 的权限链路分为四层:</p><ol><li><code>AuthProvider</code> 负责登录和获取用户资料。</li><li><code>userStore</code> 保存 token、角色和权限点。</li><li>路由守卫保护页面,菜单根据同一份数据过滤。</li><li>指令、组件和组合函数控制页面内的按钮或区域。</li></ol><p>后端实现可以不同,但最终需要向前端提供统一的角色和权限数据。</p><h2 id="启用路由鉴权" tabindex="-1">启用路由鉴权 <a class="header-anchor" href="#启用路由鉴权" aria-label="Permalink to "启用路由鉴权""></a></h2><p><code>createHostRouter()</code> 支持三种写法。</p><p>关闭鉴权:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">createHostRouter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
|
|
21
|
+
<div id="app"><div class="Layout" data-v-0edfb049><!--[--><!--]--><!--[--><span tabindex="-1" data-v-7b519ef7></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-7b519ef7>Skip to content</a><!--]--><!----><header class="VPNav" data-v-0edfb049 data-v-cd38b33d><div class="VPNavBar" data-v-cd38b33d data-v-61f8f22d><div class="wrapper" data-v-61f8f22d><div class="container" data-v-61f8f22d><div class="title" data-v-61f8f22d><div class="VPNavBarTitle has-sidebar" data-v-61f8f22d data-v-df65655a><a class="title" href="/@melt-js/docs-bag@2026.11.16/dist/" data-v-df65655a><!--[--><!--]--><!--[--><img class="VPImage logo" src="/@melt-js/docs-bag@2026.11.16/dist/logo.png" alt data-v-0be788e2><!--]--><span data-v-df65655a>Vue-Bag-Admin</span><!--[--><!--]--></a></div></div><div class="content" data-v-61f8f22d><div class="content-body" data-v-61f8f22d><!--[--><!--]--><div class="VPNavBarSearch search" data-v-61f8f22d><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-61f8f22d data-v-52b0ba7e><span id="main-nav-aria-label" class="visually-hidden" data-v-52b0ba7e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/@melt-js/docs-bag@2026.11.16/dist/" tabindex="0" data-v-52b0ba7e data-v-32d1898c><!--[--><span data-v-32d1898c>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/@melt-js/docs-bag@2026.11.16/dist/guide/introduction.html" tabindex="0" data-v-52b0ba7e data-v-32d1898c><!--[--><span data-v-32d1898c>指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://hangjob.github.io/vue-bag-admin/" target="_blank" rel="noreferrer" tabindex="0" data-v-52b0ba7e data-v-32d1898c><!--[--><span data-v-32d1898c>在线预览</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-52b0ba7e data-v-af632b79><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-af632b79><span class="text" data-v-af632b79><!----><span data-v-af632b79>社区</span><span class="vpi-chevron-down text-icon" data-v-af632b79></span></span></button><div class="menu" data-v-af632b79><div class="VPMenu" data-v-af632b79 data-v-91f581de><div class="items" data-v-91f581de><!--[--><!--[--><div class="VPMenuLink" data-v-91f581de data-v-0a7b9194><a class="VPLink link" href="/@melt-js/docs-bag@2026.11.16/dist/#community" data-v-0a7b9194><!--[--><span data-v-0a7b9194>微信群</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-91f581de data-v-0a7b9194><a class="VPLink link vp-external-link-icon" href="https://www.itnavs.com/" target="_blank" rel="noreferrer" data-v-0a7b9194><!--[--><span data-v-0a7b9194>知航驿站</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-91f581de data-v-0a7b9194><a class="VPLink link vp-external-link-icon" href="https://yh.itnavs.com/contact" target="_blank" rel="noreferrer" data-v-0a7b9194><!--[--><span data-v-0a7b9194>合作机会</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://www.npmjs.com/package/@melt-js/libs-bag-entry" target="_blank" rel="noreferrer" tabindex="0" data-v-52b0ba7e data-v-32d1898c><!--[--><span data-v-32d1898c>v2026.11.16</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-61f8f22d data-v-dc17aa45><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-dc17aa45 data-v-685f7c6e data-v-e5c4a645><span class="check" data-v-e5c4a645><span class="icon" data-v-e5c4a645><!--[--><span class="vpi-sun sun" data-v-685f7c6e></span><span class="vpi-moon moon" data-v-685f7c6e></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-61f8f22d data-v-6ba2cce0 data-v-95361356><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hangjob/vue-bag-admin/tree/next" aria-label="github" target="_blank" rel="noopener" data-v-95361356 data-v-ff15611b><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-61f8f22d data-v-6bf73ff9 data-v-af632b79><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-af632b79><span class="vpi-more-horizontal icon" data-v-af632b79></span></button><div class="menu" data-v-af632b79><div class="VPMenu" data-v-af632b79 data-v-91f581de><!----><!--[--><!--[--><!----><div class="group" data-v-6bf73ff9><div class="item appearance" data-v-6bf73ff9><p class="label" data-v-6bf73ff9>Appearance</p><div class="appearance-action" data-v-6bf73ff9><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-6bf73ff9 data-v-685f7c6e data-v-e5c4a645><span class="check" data-v-e5c4a645><span class="icon" data-v-e5c4a645><!--[--><span class="vpi-sun sun" data-v-685f7c6e></span><span class="vpi-moon moon" data-v-685f7c6e></span><!--]--></span></span></button></div></div></div><div class="group" data-v-6bf73ff9><div class="item social-links" data-v-6bf73ff9><div class="VPSocialLinks social-links-list" data-v-6bf73ff9 data-v-95361356><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hangjob/vue-bag-admin/tree/next" aria-label="github" target="_blank" rel="noopener" data-v-95361356 data-v-ff15611b><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-61f8f22d data-v-633bcbbe><span class="container" data-v-633bcbbe><span class="top" data-v-633bcbbe></span><span class="middle" data-v-633bcbbe></span><span class="bottom" data-v-633bcbbe></span></span></button></div></div></div></div><div class="divider" data-v-61f8f22d><div class="divider-line" data-v-61f8f22d></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-0edfb049 data-v-a46b1e36><div class="container" data-v-a46b1e36><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a46b1e36><span class="vpi-align-left menu-icon" data-v-a46b1e36></span><span class="menu-text" data-v-a46b1e36>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a46b1e36 data-v-376aa372><button data-v-376aa372>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-0edfb049 data-v-4290678e><div class="curtain" data-v-4290678e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-4290678e><span class="visually-hidden" id="sidebar-aria-label" data-v-4290678e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-3a01ad27><section class="VPSidebarItem level-0" data-v-3a01ad27 data-v-e46237b3><div class="item" role="button" tabindex="0" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><h2 class="text" data-v-e46237b3>开始使用</h2><!----></div><div class="items" data-v-e46237b3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/introduction.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>项目介绍</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/getting-started.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>快速上手</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/create-project.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>创建项目</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-3a01ad27><section class="VPSidebarItem level-0 has-active" data-v-3a01ad27 data-v-e46237b3><div class="item" role="button" tabindex="0" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><h2 class="text" data-v-e46237b3>核心开发</h2><!----></div><div class="items" data-v-e46237b3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/host/bootstrap.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>初始化宿主</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/host/routing-and-menu.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>路由与菜单</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/host/auth-and-permissions.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>登录与权限</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/request-and-components.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>请求与组件</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-3a01ad27><section class="VPSidebarItem level-0" data-v-3a01ad27 data-v-e46237b3><div class="item" role="button" tabindex="0" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><h2 class="text" data-v-e46237b3>官方插件</h2><!----></div><div class="items" data-v-e46237b3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/official-plugins/" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>插件总览</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/official-plugins/install-and-toggle.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>安装与启停</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/official-plugins/shop.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>商城插件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/official-plugins/sys-setting.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>系统设置插件</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-3a01ad27><section class="VPSidebarItem level-0" data-v-3a01ad27 data-v-e46237b3><div class="item" role="button" tabindex="0" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><h2 class="text" data-v-e46237b3>插件开发</h2><!----></div><div class="items" data-v-e46237b3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/create-plugin.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>创建插件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/admin-plugin.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>AdminPlugin 配置</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/routes-menus-locales.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>路由、菜单与多语言</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/permissions-and-settings.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>权限与配置项</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/lifecycle-and-dependencies.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>生命周期与依赖</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/debug-and-publish.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>调试与发布</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-0edfb049 data-v-c786a43b><div class="VPDoc has-sidebar has-aside" data-v-c786a43b data-v-c1154bb5><!--[--><!--]--><div class="container" data-v-c1154bb5><div class="aside" data-v-c1154bb5><div class="aside-curtain" data-v-c1154bb5></div><div class="aside-container" data-v-c1154bb5><div class="aside-content" data-v-c1154bb5><div class="VPDocAside" data-v-c1154bb5 data-v-ac30bcc5><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-ac30bcc5 data-v-3870f070><div class="content" data-v-3870f070><div class="outline-marker" data-v-3870f070></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-3870f070>On this page</div><ul class="VPDocOutlineItem root" data-v-3870f070 data-v-d3fae412><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-ac30bcc5></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c1154bb5><div class="content-container" data-v-c1154bb5><!--[--><!--]--><main class="main" data-v-c1154bb5><div style="position:relative;" class="vp-doc _@melt-js_docs-bag@2026_11_16_dist_guide_host_auth-and-permissions" data-v-c1154bb5><div><h1 id="登录与权限" tabindex="-1">登录与权限 <a class="header-anchor" href="#登录与权限" aria-label="Permalink to "登录与权限""></a></h1><p>Vue-Bag-Admin 的权限链路分为四层:</p><ol><li><code>AuthProvider</code> 负责登录和获取用户资料。</li><li><code>userStore</code> 保存 token、角色和权限点。</li><li>路由守卫保护页面,菜单根据同一份数据过滤。</li><li>指令、组件和组合函数控制页面内的按钮或区域。</li></ol><p>后端实现可以不同,但最终需要向前端提供统一的角色和权限数据。</p><h2 id="启用路由鉴权" tabindex="-1">启用路由鉴权 <a class="header-anchor" href="#启用路由鉴权" aria-label="Permalink to "启用路由鉴权""></a></h2><p><code>createHostRouter()</code> 支持三种写法。</p><p>关闭鉴权:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">createHostRouter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
|
|
22
22
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> routes: appRoutes,</span></span>
|
|
23
23
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> auth: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 关闭登录和页面权限守卫</span></span>
|
|
24
24
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">})</span></span></code></pre></div><p>使用默认路径:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">createHostRouter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
|
|
@@ -156,8 +156,8 @@
|
|
|
156
156
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> canManageSystem</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> canAccess</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
|
|
157
157
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> roles: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'admin'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">],</span></span>
|
|
158
158
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> permissions: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'system.manage'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
|
|
159
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">})</span></span></code></pre></div><p><code>useAccess()</code> 返回响应式的 <code>ComputedRef<boolean></code>;<code>canAccess()</code> 返回当前时刻的布尔值。</p><h2 id="权限设计建议" tabindex="-1">权限设计建议 <a class="header-anchor" href="#权限设计建议" aria-label="Permalink to "权限设计建议""></a></h2><ul><li>页面安全依赖路由守卫,不能只隐藏菜单或按钮。</li><li>菜单与对应路由使用同一组角色和权限条件。</li><li>角色适合描述身份,权限点适合描述具体动作。</li><li>权限点建议采用 <code>业务域.资源.动作</code>,例如 <code>shop.product.create</code>。</li><li>超级管理员可以返回 <code>*</code> 权限,框架会视为拥有所有权限点。</li><li>前端权限用于交互和路由保护,后端仍必须再次校验接口权限。</li></ul><h2 id="下一步" tabindex="-1">下一步 <a class="header-anchor" href="#下一步" aria-label="Permalink to "下一步""></a></h2><p>继续阅读 <a href="./../request-and-components.html">请求与组件</a>,在页面中接入接口、请求状态、表格和表单。</p></div></div></main><footer class="VPDocFooter" data-v-
|
|
160
|
-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"guide_complete-host-app.md\":\"
|
|
159
|
+
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">})</span></span></code></pre></div><p><code>useAccess()</code> 返回响应式的 <code>ComputedRef<boolean></code>;<code>canAccess()</code> 返回当前时刻的布尔值。</p><h2 id="权限设计建议" tabindex="-1">权限设计建议 <a class="header-anchor" href="#权限设计建议" aria-label="Permalink to "权限设计建议""></a></h2><ul><li>页面安全依赖路由守卫,不能只隐藏菜单或按钮。</li><li>菜单与对应路由使用同一组角色和权限条件。</li><li>角色适合描述身份,权限点适合描述具体动作。</li><li>权限点建议采用 <code>业务域.资源.动作</code>,例如 <code>shop.product.create</code>。</li><li>超级管理员可以返回 <code>*</code> 权限,框架会视为拥有所有权限点。</li><li>前端权限用于交互和路由保护,后端仍必须再次校验接口权限。</li></ul><h2 id="下一步" tabindex="-1">下一步 <a class="header-anchor" href="#下一步" aria-label="Permalink to "下一步""></a></h2><p>继续阅读 <a href="./../request-and-components.html">请求与组件</a>,在页面中接入接口、请求状态、表格和表单。</p></div></div></main><footer class="VPDocFooter" data-v-c1154bb5 data-v-1803e81a><!--[--><!--]--><div class="edit-info" data-v-1803e81a><!----><div class="last-updated" data-v-1803e81a><p class="VPLastUpdated" data-v-1803e81a data-v-3993c1fc>Last updated: <time datetime="2026-11-07T09:53:20.000Z" data-v-3993c1fc></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1803e81a><span class="visually-hidden" id="doc-footer-aria-label" data-v-1803e81a>Pager</span><div class="pager" data-v-1803e81a><a class="VPLink link pager-link prev" href="/@melt-js/docs-bag@2026.11.16/dist/guide/host/routing-and-menu.html" data-v-1803e81a><!--[--><span class="desc" data-v-1803e81a>Previous page</span><span class="title" data-v-1803e81a>路由与菜单</span><!--]--></a></div><div class="pager" data-v-1803e81a><a class="VPLink link pager-link next" href="/@melt-js/docs-bag@2026.11.16/dist/guide/request-and-components.html" data-v-1803e81a><!--[--><span class="desc" data-v-1803e81a>Next page</span><span class="title" data-v-1803e81a>请求与组件</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-0edfb049 data-v-5db284cc><div class="container" data-v-5db284cc><p class="message" data-v-5db284cc>Released under the MIT License.</p><p class="copyright" data-v-5db284cc>Copyright © 2026-present Vue-Bag-Admin</p></div></footer><!--[--><!--]--></div></div>
|
|
160
|
+
<script>window.__VP_HASH_MAP__=JSON.parse("{\"guide_complete-host-app.md\":\"CBuOgyl8\",\"guide_create-project.md\":\"B2KkXWnI\",\"guide_deployment.md\":\"BrvgEFf0\",\"guide_dictionary-system.md\":\"hS_2-jYz\",\"guide_getting-started.md\":\"0nvT0khJ\",\"guide_host_auth-and-permissions.md\":\"Pr66-VM-\",\"guide_host_bootstrap.md\":\"DKFeJyTi\",\"guide_host_routing-and-menu.md\":\"CQaMO4vj\",\"guide_introduction.md\":\"tg6wBrpR\",\"guide_local-debugging.md\":\"DVHeXzws\",\"guide_network-request.md\":\"BlxKmm59\",\"guide_official-plugins_index.md\":\"BF-gWYVU\",\"guide_official-plugins_install-and-toggle.md\":\"B35ne8VL\",\"guide_official-plugins_shop.md\":\"BGGP886L\",\"guide_official-plugins_sys-setting.md\":\"BwiJzRiL\",\"guide_package-core.md\":\"D1xrMRok\",\"guide_package-ecosystem.md\":\"Dl2r9NSa\",\"guide_package-plugin-shop.md\":\"BaIhzPDV\",\"guide_package-plugin-sys-setting.md\":\"C0ROCk-O\",\"guide_package-publishing.md\":\"De2Y0rte\",\"guide_package-request.md\":\"DugGGXSX\",\"guide_package-ui.md\":\"BPCpNCIF\",\"guide_permissions.md\":\"DHnKaha_\",\"guide_plugin-development.md\":\"DeFWVfLN\",\"guide_plugins_admin-plugin.md\":\"XLffV1LB\",\"guide_plugins_create-plugin.md\":\"Br3OIR1m\",\"guide_plugins_debug-and-publish.md\":\"C5ZbCito\",\"guide_plugins_lifecycle-and-dependencies.md\":\"CV7nFME-\",\"guide_plugins_permissions-and-settings.md\":\"B_MrVXY_\",\"guide_plugins_routes-menus-locales.md\":\"heaL1_wi\",\"guide_pro-form.md\":\"L9CKqs5C\",\"guide_pro-table.md\":\"DlhJG49R\",\"guide_request-and-components.md\":\"CeEnrOuY\",\"guide_routing-and-menu.md\":\"09TL-ILh\",\"guide_theme-tokens.md\":\"Cfn7RM_2\",\"index.md\":\"ClEmxxY1\",\"readme.md\":\"D8R8Eb23\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Vue-Bag-Admin\",\"description\":\"基于 Vue3 + Vite6 + Naive UI + Pinia + Strapi5 的中后台系统框架\",\"base\":\"/@melt-js/docs-bag@2026.11.16/dist/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":\"dark\",\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"指南\",\"link\":\"/guide/introduction\"},{\"text\":\"在线预览\",\"link\":\"https://hangjob.github.io/vue-bag-admin/\"},{\"text\":\"社区\",\"items\":[{\"text\":\"微信群\",\"link\":\"/#community\"},{\"text\":\"知航驿站\",\"link\":\"https://www.itnavs.com/\"},{\"text\":\"合作机会\",\"link\":\"https://yh.itnavs.com/contact\"}]},{\"text\":\"v2026.11.16\",\"link\":\"https://www.npmjs.com/package/@melt-js/libs-bag-entry\"}],\"sidebar\":{\"/guide/\":[{\"text\":\"开始使用\",\"items\":[{\"text\":\"项目介绍\",\"link\":\"/guide/introduction\"},{\"text\":\"快速上手\",\"link\":\"/guide/getting-started\"},{\"text\":\"创建项目\",\"link\":\"/guide/create-project\"}]},{\"text\":\"核心开发\",\"items\":[{\"text\":\"初始化宿主\",\"link\":\"/guide/host/bootstrap\"},{\"text\":\"路由与菜单\",\"link\":\"/guide/host/routing-and-menu\"},{\"text\":\"登录与权限\",\"link\":\"/guide/host/auth-and-permissions\"},{\"text\":\"请求与组件\",\"link\":\"/guide/request-and-components\"}]},{\"text\":\"官方插件\",\"items\":[{\"text\":\"插件总览\",\"link\":\"/guide/official-plugins/\"},{\"text\":\"安装与启停\",\"link\":\"/guide/official-plugins/install-and-toggle\"},{\"text\":\"商城插件\",\"link\":\"/guide/official-plugins/shop\"},{\"text\":\"系统设置插件\",\"link\":\"/guide/official-plugins/sys-setting\"}]},{\"text\":\"插件开发\",\"items\":[{\"text\":\"创建插件\",\"link\":\"/guide/plugins/create-plugin\"},{\"text\":\"AdminPlugin 配置\",\"link\":\"/guide/plugins/admin-plugin\"},{\"text\":\"路由、菜单与多语言\",\"link\":\"/guide/plugins/routes-menus-locales\"},{\"text\":\"权限与配置项\",\"link\":\"/guide/plugins/permissions-and-settings\"},{\"text\":\"生命周期与依赖\",\"link\":\"/guide/plugins/lifecycle-and-dependencies\"},{\"text\":\"调试与发布\",\"link\":\"/guide/plugins/debug-and-publish\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/hangjob/vue-bag-admin/tree/next\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2026-present Vue-Bag-Admin\"},\"search\":{\"provider\":\"local\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
|
161
161
|
|
|
162
162
|
</body>
|
|
163
163
|
</html>
|
|
@@ -6,19 +6,19 @@
|
|
|
6
6
|
<title>初始化宿主 | Vue-Bag-Admin</title>
|
|
7
7
|
<meta name="description" content="基于 Vue3 + Vite6 + Naive UI + Pinia + Strapi5 的中后台系统框架">
|
|
8
8
|
<meta name="generator" content="VitePress v1.6.4">
|
|
9
|
-
<link rel="preload stylesheet" href="/@melt-js/docs-bag@2026.11.
|
|
10
|
-
<link rel="preload stylesheet" href="/@melt-js/docs-bag@2026.11.
|
|
9
|
+
<link rel="preload stylesheet" href="/@melt-js/docs-bag@2026.11.16/dist/assets/style.IeUynjWL.css" as="style">
|
|
10
|
+
<link rel="preload stylesheet" href="/@melt-js/docs-bag@2026.11.16/dist/vp-icons.css" as="style">
|
|
11
11
|
|
|
12
|
-
<script type="module" src="/@melt-js/docs-bag@2026.11.
|
|
13
|
-
<link rel="preload" href="/@melt-js/docs-bag@2026.11.
|
|
14
|
-
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.
|
|
15
|
-
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.
|
|
16
|
-
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.
|
|
12
|
+
<script type="module" src="/@melt-js/docs-bag@2026.11.16/dist/assets/app.B2EI2o4q.js"></script>
|
|
13
|
+
<link rel="preload" href="/@melt-js/docs-bag@2026.11.16/dist/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
|
14
|
+
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.16/dist/assets/chunks/theme.BJkR0Hu5.js">
|
|
15
|
+
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.16/dist/assets/chunks/framework.Olv9GB1A.js">
|
|
16
|
+
<link rel="modulepreload" href="/@melt-js/docs-bag@2026.11.16/dist/assets/guide_host_bootstrap.md.DKFeJyTi.lean.js">
|
|
17
17
|
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"dark",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
18
18
|
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
|
21
|
-
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/@melt-js/docs-bag@2026.11.7-1/dist/" data-v-1168a8e4><!--[--><!--]--><!--[--><img class="VPImage logo" src="/@melt-js/docs-bag@2026.11.7-1/dist/logo.png" alt data-v-8426fc1a><!--]--><span data-v-1168a8e4>Vue-Bag-Admin</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/@melt-js/docs-bag@2026.11.7-1/dist/" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/introduction.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://hangjob.github.io/vue-bag-admin/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>在线预览</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-dc692963 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-cf11d7a2><span class="text" data-v-cf11d7a2><!----><span data-v-cf11d7a2>社区</span><span class="vpi-chevron-down text-icon" data-v-cf11d7a2></span></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><div class="items" data-v-b98bc113><!--[--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link" href="/@melt-js/docs-bag@2026.11.7-1/dist/#community" data-v-35975db6><!--[--><span data-v-35975db6>微信群</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link vp-external-link-icon" href="https://www.itnavs.com/" target="_blank" rel="noreferrer" data-v-35975db6><!--[--><span data-v-35975db6>知航驿站</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link vp-external-link-icon" href="https://yh.itnavs.com/contact" target="_blank" rel="noreferrer" data-v-35975db6><!--[--><span data-v-35975db6>合作机会</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://www.npmjs.com/package/@melt-js/libs-bag-entry" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>v2026.11.7</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hangjob/vue-bag-admin/tree/next" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hangjob/vue-bag-admin/tree/next" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>开始使用</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/introduction.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>项目介绍</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/getting-started.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>快速上手</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/create-project.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>创建项目</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 has-active" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>核心开发</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/host/bootstrap.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>初始化宿主</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/host/routing-and-menu.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>路由与菜单</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/host/auth-and-permissions.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>登录与权限</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/request-and-components.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>请求与组件</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>官方插件</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/official-plugins/" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>插件总览</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/official-plugins/install-and-toggle.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>安装与启停</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/official-plugins/shop.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>商城插件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/official-plugins/sys-setting.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>系统设置插件</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>插件开发</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/create-plugin.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>创建插件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/admin-plugin.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>AdminPlugin 配置</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/routes-menus-locales.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>路由、菜单与多语言</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/permissions-and-settings.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>权限与配置项</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/lifecycle-and-dependencies.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>生命周期与依赖</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.7-1/dist/guide/plugins/debug-and-publish.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>调试与发布</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _@melt-js_docs-bag@2026_11_7-1_dist_guide_host_bootstrap" data-v-39a288b8><div><h1 id="初始化宿主" tabindex="-1">初始化宿主 <a class="header-anchor" href="#初始化宿主" aria-label="Permalink to "初始化宿主""></a></h1><p>宿主初始化的目标,是把 Vue 应用、状态管理、国际化、路由和插件运行时连接起来。</p><p>这一页先使用最小配置启动宿主。登录、权限和请求会在后续章节逐步加入。</p><h2 id="最小入口" tabindex="-1">最小入口 <a class="header-anchor" href="#最小入口" aria-label="Permalink to "最小入口""></a></h2><p><code>src/main.ts</code>:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { createApp } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'vue'</span></span>
|
|
21
|
+
<div id="app"><div class="Layout" data-v-0edfb049><!--[--><!--]--><!--[--><span tabindex="-1" data-v-7b519ef7></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-7b519ef7>Skip to content</a><!--]--><!----><header class="VPNav" data-v-0edfb049 data-v-cd38b33d><div class="VPNavBar" data-v-cd38b33d data-v-61f8f22d><div class="wrapper" data-v-61f8f22d><div class="container" data-v-61f8f22d><div class="title" data-v-61f8f22d><div class="VPNavBarTitle has-sidebar" data-v-61f8f22d data-v-df65655a><a class="title" href="/@melt-js/docs-bag@2026.11.16/dist/" data-v-df65655a><!--[--><!--]--><!--[--><img class="VPImage logo" src="/@melt-js/docs-bag@2026.11.16/dist/logo.png" alt data-v-0be788e2><!--]--><span data-v-df65655a>Vue-Bag-Admin</span><!--[--><!--]--></a></div></div><div class="content" data-v-61f8f22d><div class="content-body" data-v-61f8f22d><!--[--><!--]--><div class="VPNavBarSearch search" data-v-61f8f22d><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-61f8f22d data-v-52b0ba7e><span id="main-nav-aria-label" class="visually-hidden" data-v-52b0ba7e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/@melt-js/docs-bag@2026.11.16/dist/" tabindex="0" data-v-52b0ba7e data-v-32d1898c><!--[--><span data-v-32d1898c>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/@melt-js/docs-bag@2026.11.16/dist/guide/introduction.html" tabindex="0" data-v-52b0ba7e data-v-32d1898c><!--[--><span data-v-32d1898c>指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://hangjob.github.io/vue-bag-admin/" target="_blank" rel="noreferrer" tabindex="0" data-v-52b0ba7e data-v-32d1898c><!--[--><span data-v-32d1898c>在线预览</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-52b0ba7e data-v-af632b79><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-af632b79><span class="text" data-v-af632b79><!----><span data-v-af632b79>社区</span><span class="vpi-chevron-down text-icon" data-v-af632b79></span></span></button><div class="menu" data-v-af632b79><div class="VPMenu" data-v-af632b79 data-v-91f581de><div class="items" data-v-91f581de><!--[--><!--[--><div class="VPMenuLink" data-v-91f581de data-v-0a7b9194><a class="VPLink link" href="/@melt-js/docs-bag@2026.11.16/dist/#community" data-v-0a7b9194><!--[--><span data-v-0a7b9194>微信群</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-91f581de data-v-0a7b9194><a class="VPLink link vp-external-link-icon" href="https://www.itnavs.com/" target="_blank" rel="noreferrer" data-v-0a7b9194><!--[--><span data-v-0a7b9194>知航驿站</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-91f581de data-v-0a7b9194><a class="VPLink link vp-external-link-icon" href="https://yh.itnavs.com/contact" target="_blank" rel="noreferrer" data-v-0a7b9194><!--[--><span data-v-0a7b9194>合作机会</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://www.npmjs.com/package/@melt-js/libs-bag-entry" target="_blank" rel="noreferrer" tabindex="0" data-v-52b0ba7e data-v-32d1898c><!--[--><span data-v-32d1898c>v2026.11.16</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-61f8f22d data-v-dc17aa45><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-dc17aa45 data-v-685f7c6e data-v-e5c4a645><span class="check" data-v-e5c4a645><span class="icon" data-v-e5c4a645><!--[--><span class="vpi-sun sun" data-v-685f7c6e></span><span class="vpi-moon moon" data-v-685f7c6e></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-61f8f22d data-v-6ba2cce0 data-v-95361356><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hangjob/vue-bag-admin/tree/next" aria-label="github" target="_blank" rel="noopener" data-v-95361356 data-v-ff15611b><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-61f8f22d data-v-6bf73ff9 data-v-af632b79><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-af632b79><span class="vpi-more-horizontal icon" data-v-af632b79></span></button><div class="menu" data-v-af632b79><div class="VPMenu" data-v-af632b79 data-v-91f581de><!----><!--[--><!--[--><!----><div class="group" data-v-6bf73ff9><div class="item appearance" data-v-6bf73ff9><p class="label" data-v-6bf73ff9>Appearance</p><div class="appearance-action" data-v-6bf73ff9><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-6bf73ff9 data-v-685f7c6e data-v-e5c4a645><span class="check" data-v-e5c4a645><span class="icon" data-v-e5c4a645><!--[--><span class="vpi-sun sun" data-v-685f7c6e></span><span class="vpi-moon moon" data-v-685f7c6e></span><!--]--></span></span></button></div></div></div><div class="group" data-v-6bf73ff9><div class="item social-links" data-v-6bf73ff9><div class="VPSocialLinks social-links-list" data-v-6bf73ff9 data-v-95361356><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hangjob/vue-bag-admin/tree/next" aria-label="github" target="_blank" rel="noopener" data-v-95361356 data-v-ff15611b><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-61f8f22d data-v-633bcbbe><span class="container" data-v-633bcbbe><span class="top" data-v-633bcbbe></span><span class="middle" data-v-633bcbbe></span><span class="bottom" data-v-633bcbbe></span></span></button></div></div></div></div><div class="divider" data-v-61f8f22d><div class="divider-line" data-v-61f8f22d></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-0edfb049 data-v-a46b1e36><div class="container" data-v-a46b1e36><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a46b1e36><span class="vpi-align-left menu-icon" data-v-a46b1e36></span><span class="menu-text" data-v-a46b1e36>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a46b1e36 data-v-376aa372><button data-v-376aa372>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-0edfb049 data-v-4290678e><div class="curtain" data-v-4290678e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-4290678e><span class="visually-hidden" id="sidebar-aria-label" data-v-4290678e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-3a01ad27><section class="VPSidebarItem level-0" data-v-3a01ad27 data-v-e46237b3><div class="item" role="button" tabindex="0" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><h2 class="text" data-v-e46237b3>开始使用</h2><!----></div><div class="items" data-v-e46237b3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/introduction.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>项目介绍</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/getting-started.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>快速上手</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/create-project.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>创建项目</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-3a01ad27><section class="VPSidebarItem level-0 has-active" data-v-3a01ad27 data-v-e46237b3><div class="item" role="button" tabindex="0" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><h2 class="text" data-v-e46237b3>核心开发</h2><!----></div><div class="items" data-v-e46237b3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/host/bootstrap.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>初始化宿主</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/host/routing-and-menu.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>路由与菜单</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/host/auth-and-permissions.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>登录与权限</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/request-and-components.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>请求与组件</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-3a01ad27><section class="VPSidebarItem level-0" data-v-3a01ad27 data-v-e46237b3><div class="item" role="button" tabindex="0" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><h2 class="text" data-v-e46237b3>官方插件</h2><!----></div><div class="items" data-v-e46237b3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/official-plugins/" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>插件总览</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/official-plugins/install-and-toggle.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>安装与启停</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/official-plugins/shop.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>商城插件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/official-plugins/sys-setting.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>系统设置插件</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-3a01ad27><section class="VPSidebarItem level-0" data-v-3a01ad27 data-v-e46237b3><div class="item" role="button" tabindex="0" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><h2 class="text" data-v-e46237b3>插件开发</h2><!----></div><div class="items" data-v-e46237b3><!--[--><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/create-plugin.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>创建插件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/admin-plugin.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>AdminPlugin 配置</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/routes-menus-locales.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>路由、菜单与多语言</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/permissions-and-settings.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>权限与配置项</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/lifecycle-and-dependencies.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>生命周期与依赖</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-e46237b3><div class="item" data-v-e46237b3><div class="indicator" data-v-e46237b3></div><a class="VPLink link link" href="/@melt-js/docs-bag@2026.11.16/dist/guide/plugins/debug-and-publish.html" data-v-e46237b3><!--[--><p class="text" data-v-e46237b3>调试与发布</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-0edfb049 data-v-c786a43b><div class="VPDoc has-sidebar has-aside" data-v-c786a43b data-v-c1154bb5><!--[--><!--]--><div class="container" data-v-c1154bb5><div class="aside" data-v-c1154bb5><div class="aside-curtain" data-v-c1154bb5></div><div class="aside-container" data-v-c1154bb5><div class="aside-content" data-v-c1154bb5><div class="VPDocAside" data-v-c1154bb5 data-v-ac30bcc5><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-ac30bcc5 data-v-3870f070><div class="content" data-v-3870f070><div class="outline-marker" data-v-3870f070></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-3870f070>On this page</div><ul class="VPDocOutlineItem root" data-v-3870f070 data-v-d3fae412><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-ac30bcc5></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c1154bb5><div class="content-container" data-v-c1154bb5><!--[--><!--]--><main class="main" data-v-c1154bb5><div style="position:relative;" class="vp-doc _@melt-js_docs-bag@2026_11_16_dist_guide_host_bootstrap" data-v-c1154bb5><div><h1 id="初始化宿主" tabindex="-1">初始化宿主 <a class="header-anchor" href="#初始化宿主" aria-label="Permalink to "初始化宿主""></a></h1><p>宿主初始化的目标,是把 Vue 应用、状态管理、国际化、路由和插件运行时连接起来。</p><p>这一页先使用最小配置启动宿主。登录、权限和请求会在后续章节逐步加入。</p><h2 id="最小入口" tabindex="-1">最小入口 <a class="header-anchor" href="#最小入口" aria-label="Permalink to "最小入口""></a></h2><p><code>src/main.ts</code>:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { createApp } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'vue'</span></span>
|
|
22
22
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { createPinia } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'pinia'</span></span>
|
|
23
23
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { bootstrapPlugins, createHostI18n, createHostRouter } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> '@melt-js/libs-bag-entry'</span></span>
|
|
24
24
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> App </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> './App.vue'</span></span>
|
|
@@ -104,8 +104,8 @@
|
|
|
104
104
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> router,</span></span>
|
|
105
105
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> i18n,</span></span>
|
|
106
106
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> plugins: [workspacePlugin]</span></span>
|
|
107
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">})</span></span></code></pre></div><p>插件数组的书写顺序不是最终注册顺序。运行时会优先根据每个插件的 <code>order</code> 排序。</p><h2 id="从最小宿主升级" tabindex="-1">从最小宿主升级 <a class="header-anchor" href="#从最小宿主升级" aria-label="Permalink to "从最小宿主升级""></a></h2><p>一个真实后台通常还需要:</p><ul><li><code>setAuthProvider()</code>:接入真实登录系统。</li><li><code>registerPermissionDirective()</code>:注册 <code>v-permission</code>。</li><li><code>setupHttp()</code>:注入接口地址、token 和错误处理。</li><li><code>bootstrapPlugins({ plugins })</code>:加载业务插件。</li></ul><p>不要一次把所有能力都塞进入口。建议先确保宿主与路由正常,再依次接认证、插件和请求。</p><h2 id="下一步" tabindex="-1">下一步 <a class="header-anchor" href="#下一步" aria-label="Permalink to "下一步""></a></h2><p>继续阅读 <a href="./routing-and-menu.html">路由与菜单</a>,先建立“页面能访问”和“页面出现在导航中”之间的关系。</p></div></div></main><footer class="VPDocFooter" data-v-
|
|
108
|
-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"guide_complete-host-app.md\":\"
|
|
107
|
+
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">})</span></span></code></pre></div><p>插件数组的书写顺序不是最终注册顺序。运行时会优先根据每个插件的 <code>order</code> 排序。</p><h2 id="从最小宿主升级" tabindex="-1">从最小宿主升级 <a class="header-anchor" href="#从最小宿主升级" aria-label="Permalink to "从最小宿主升级""></a></h2><p>一个真实后台通常还需要:</p><ul><li><code>setAuthProvider()</code>:接入真实登录系统。</li><li><code>registerPermissionDirective()</code>:注册 <code>v-permission</code>。</li><li><code>setupHttp()</code>:注入接口地址、token 和错误处理。</li><li><code>bootstrapPlugins({ plugins })</code>:加载业务插件。</li></ul><p>不要一次把所有能力都塞进入口。建议先确保宿主与路由正常,再依次接认证、插件和请求。</p><h2 id="下一步" tabindex="-1">下一步 <a class="header-anchor" href="#下一步" aria-label="Permalink to "下一步""></a></h2><p>继续阅读 <a href="./routing-and-menu.html">路由与菜单</a>,先建立“页面能访问”和“页面出现在导航中”之间的关系。</p></div></div></main><footer class="VPDocFooter" data-v-c1154bb5 data-v-1803e81a><!--[--><!--]--><div class="edit-info" data-v-1803e81a><!----><div class="last-updated" data-v-1803e81a><p class="VPLastUpdated" data-v-1803e81a data-v-3993c1fc>Last updated: <time datetime="2026-11-07T09:53:20.000Z" data-v-3993c1fc></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1803e81a><span class="visually-hidden" id="doc-footer-aria-label" data-v-1803e81a>Pager</span><div class="pager" data-v-1803e81a><a class="VPLink link pager-link prev" href="/@melt-js/docs-bag@2026.11.16/dist/guide/create-project.html" data-v-1803e81a><!--[--><span class="desc" data-v-1803e81a>Previous page</span><span class="title" data-v-1803e81a>创建项目</span><!--]--></a></div><div class="pager" data-v-1803e81a><a class="VPLink link pager-link next" href="/@melt-js/docs-bag@2026.11.16/dist/guide/host/routing-and-menu.html" data-v-1803e81a><!--[--><span class="desc" data-v-1803e81a>Next page</span><span class="title" data-v-1803e81a>路由与菜单</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-0edfb049 data-v-5db284cc><div class="container" data-v-5db284cc><p class="message" data-v-5db284cc>Released under the MIT License.</p><p class="copyright" data-v-5db284cc>Copyright © 2026-present Vue-Bag-Admin</p></div></footer><!--[--><!--]--></div></div>
|
|
108
|
+
<script>window.__VP_HASH_MAP__=JSON.parse("{\"guide_complete-host-app.md\":\"CBuOgyl8\",\"guide_create-project.md\":\"B2KkXWnI\",\"guide_deployment.md\":\"BrvgEFf0\",\"guide_dictionary-system.md\":\"hS_2-jYz\",\"guide_getting-started.md\":\"0nvT0khJ\",\"guide_host_auth-and-permissions.md\":\"Pr66-VM-\",\"guide_host_bootstrap.md\":\"DKFeJyTi\",\"guide_host_routing-and-menu.md\":\"CQaMO4vj\",\"guide_introduction.md\":\"tg6wBrpR\",\"guide_local-debugging.md\":\"DVHeXzws\",\"guide_network-request.md\":\"BlxKmm59\",\"guide_official-plugins_index.md\":\"BF-gWYVU\",\"guide_official-plugins_install-and-toggle.md\":\"B35ne8VL\",\"guide_official-plugins_shop.md\":\"BGGP886L\",\"guide_official-plugins_sys-setting.md\":\"BwiJzRiL\",\"guide_package-core.md\":\"D1xrMRok\",\"guide_package-ecosystem.md\":\"Dl2r9NSa\",\"guide_package-plugin-shop.md\":\"BaIhzPDV\",\"guide_package-plugin-sys-setting.md\":\"C0ROCk-O\",\"guide_package-publishing.md\":\"De2Y0rte\",\"guide_package-request.md\":\"DugGGXSX\",\"guide_package-ui.md\":\"BPCpNCIF\",\"guide_permissions.md\":\"DHnKaha_\",\"guide_plugin-development.md\":\"DeFWVfLN\",\"guide_plugins_admin-plugin.md\":\"XLffV1LB\",\"guide_plugins_create-plugin.md\":\"Br3OIR1m\",\"guide_plugins_debug-and-publish.md\":\"C5ZbCito\",\"guide_plugins_lifecycle-and-dependencies.md\":\"CV7nFME-\",\"guide_plugins_permissions-and-settings.md\":\"B_MrVXY_\",\"guide_plugins_routes-menus-locales.md\":\"heaL1_wi\",\"guide_pro-form.md\":\"L9CKqs5C\",\"guide_pro-table.md\":\"DlhJG49R\",\"guide_request-and-components.md\":\"CeEnrOuY\",\"guide_routing-and-menu.md\":\"09TL-ILh\",\"guide_theme-tokens.md\":\"Cfn7RM_2\",\"index.md\":\"ClEmxxY1\",\"readme.md\":\"D8R8Eb23\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Vue-Bag-Admin\",\"description\":\"基于 Vue3 + Vite6 + Naive UI + Pinia + Strapi5 的中后台系统框架\",\"base\":\"/@melt-js/docs-bag@2026.11.16/dist/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":\"dark\",\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"指南\",\"link\":\"/guide/introduction\"},{\"text\":\"在线预览\",\"link\":\"https://hangjob.github.io/vue-bag-admin/\"},{\"text\":\"社区\",\"items\":[{\"text\":\"微信群\",\"link\":\"/#community\"},{\"text\":\"知航驿站\",\"link\":\"https://www.itnavs.com/\"},{\"text\":\"合作机会\",\"link\":\"https://yh.itnavs.com/contact\"}]},{\"text\":\"v2026.11.16\",\"link\":\"https://www.npmjs.com/package/@melt-js/libs-bag-entry\"}],\"sidebar\":{\"/guide/\":[{\"text\":\"开始使用\",\"items\":[{\"text\":\"项目介绍\",\"link\":\"/guide/introduction\"},{\"text\":\"快速上手\",\"link\":\"/guide/getting-started\"},{\"text\":\"创建项目\",\"link\":\"/guide/create-project\"}]},{\"text\":\"核心开发\",\"items\":[{\"text\":\"初始化宿主\",\"link\":\"/guide/host/bootstrap\"},{\"text\":\"路由与菜单\",\"link\":\"/guide/host/routing-and-menu\"},{\"text\":\"登录与权限\",\"link\":\"/guide/host/auth-and-permissions\"},{\"text\":\"请求与组件\",\"link\":\"/guide/request-and-components\"}]},{\"text\":\"官方插件\",\"items\":[{\"text\":\"插件总览\",\"link\":\"/guide/official-plugins/\"},{\"text\":\"安装与启停\",\"link\":\"/guide/official-plugins/install-and-toggle\"},{\"text\":\"商城插件\",\"link\":\"/guide/official-plugins/shop\"},{\"text\":\"系统设置插件\",\"link\":\"/guide/official-plugins/sys-setting\"}]},{\"text\":\"插件开发\",\"items\":[{\"text\":\"创建插件\",\"link\":\"/guide/plugins/create-plugin\"},{\"text\":\"AdminPlugin 配置\",\"link\":\"/guide/plugins/admin-plugin\"},{\"text\":\"路由、菜单与多语言\",\"link\":\"/guide/plugins/routes-menus-locales\"},{\"text\":\"权限与配置项\",\"link\":\"/guide/plugins/permissions-and-settings\"},{\"text\":\"生命周期与依赖\",\"link\":\"/guide/plugins/lifecycle-and-dependencies\"},{\"text\":\"调试与发布\",\"link\":\"/guide/plugins/debug-and-publish\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/hangjob/vue-bag-admin/tree/next\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2026-present Vue-Bag-Admin\"},\"search\":{\"provider\":\"local\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
|
109
109
|
|
|
110
110
|
</body>
|
|
111
111
|
</html>
|