update
This commit is contained in:
102
a1_pl_dpd_post/src/router/index.ts
Normal file
102
a1_pl_dpd_post/src/router/index.ts
Normal 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;
|
||||
Reference in New Issue
Block a user