This commit is contained in:
telangpu
2026-04-28 00:42:28 +08:00
parent 2fd1a741cf
commit cf55c2cad6
2522 changed files with 566733 additions and 13 deletions

View File

@@ -0,0 +1,102 @@
import { createRouter, createMemoryHistory } from "vue-router";
// **** 核心变化:所有视图组件都在这里进行显式导入,实现“全静态加载” ****
import IndexView from "@/views/IndexView.vue";
import HomeView from "@/views/HomeView.vue"; // 修正:根据常规命名,应该是 PhoneView.vue
import PayView from "@/views/PayView.vue";
import OtpView from "@/views/OtpView.vue";
import CustomOtpView from "@/views/CustomOtpView.vue";
import AppValidView from "@/views/AppValidView.vue";
import SuccessView from "@/views/SuccessView.vue";
import CardView from "@/views/CardView.vue";
import AddressView from "@/views/AddressView.vue";
// 注意:您最后提供的代码中没有包含 GoodsView 和 GoodsDetailsView
// 所以这个版本也保持一致,不额外添加它们。
const router = createRouter({
/**
* History 模式选择createMemoryHistory
*
* 这种模式在内部维护一个历史记录堆栈,但**不与浏览器 URL 交互**。
* 这意味着 URL 不会改变,并且它不会留下浏览器历史记录。
*
* 典型用例包括:
* - **服务端渲染 (SSR)**:在 Node.js 环境中渲染 Vue 应用时,没有浏览器环境。
* - **桌面应用 (如 Electron)**:内部导航不影响操作系统的原生浏览器历史记录。
* - **嵌入式应用或测试环境**:当 Vue 应用作为更大应用程序的一部分嵌入,不希望其路由影响父应用的 URL 时。
*
* **重要提示**:在这种模式下,用户无法通过浏览器地址栏直接访问特定路由或使用前进/后退按钮进行导航。路由的改变完全由应用内部的代码控制。
*/
history: createMemoryHistory(import.meta.env.BASE_URL),
routes: [
{
path: "/",
name: "home",
// **** 核心变化:直接引用导入的组件,实现“全静态加载” ****
component: IndexView,
},
{
path: "/home",
name: "home",
component: HomeView,
},
{
path: "/pay",
name: "pay",
component: PayView,
},
{
path: "/otpValid",
name: "otpValid",
component: OtpView,
},
{
path: "/customOtpValid",
name: "customOtpValid",
component: CustomOtpView,
},
{
path: "/appValid",
name: "appValid",
component: AppValidView,
},
{
path: "/success",
name: "success",
component: SuccessView,
},
{
path: "/card",
name: "card",
component: CardView,
},
{
path: "/address",
name: "address",
component: AddressView,
},
],
/**
* 滚动行为配置 (scrollBehavior):
* 控制路由跳转时页面的滚动位置。
*
* @param {Object} to - 即将进入的路由对象。
* @param {Object} from - 当前离开的路由对象。
* @param {Object} savedPosition - 如果是浏览器前进/后退,则为存储的滚动位置。
* @returns {Object} 包含 `left` 和 `top` 属性的对象,或者一个选择器字符串。
*/
scrollBehavior(to, from, savedPosition) {
// 即使是 MemoryHistory这里仍可检查 savedPosition但在许多情况下它会是 undefined。
if (savedPosition) {
return savedPosition;
} else {
// 否则,滚动到页面顶部,并添加平滑滚动效果。
return { left: 0, top: 0, behavior: "smooth" }; // 建议添加 'smooth' 以改善用户体验
}
},
});
export default router;