vue路由URL拼接全局參數
業務需求:
vue單頁面項目,需要在URL地址欄拼接固定的參數,在所有頁面使用。默認采用vue路由的history模式;hash模式也可以同樣適用。
主要是在vue-router導航守衛的全局前置守衛中實現。即vue-router生命周期鈎子函數 router.beforeEach 中進行路由攔截處理。
主要代碼:
router.beforeEach((to, from, next) => {
if (Object.keys(to.query).length) {
next();
return;
}
// 對URL路徑參數進行處理
if (Object.keys(from.query).length) {
let toQuery = JSON.parse(JSON.stringify(from.query));
next({ path: to.path, query: toQuery });
} else {
next();
}
});
注:最初只是設置一個固定的參數,但是后期參數地址欄會動態拼接出來一些參數,這些參數可能需要在部分路徑需要使用,所以就對路由攔截進行了相應的處理。即現在代碼塊中展示的。此方法解決了我所需要解決的問題。若要結合自身項目使用,請根據自己的實際需求進行相應的調整。