vue Hash路径 获取 参数值

本文介绍了一种在Vue项目中使用hash模式时获取URL参数的方法。通过自定义函数getQueryVariable,可以有效解决因页面路径包含‘#’而无法用传统方式获取参数的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

vue项目使用hash模式形成的页面路径包含‘#’,无法使用传统方式获取参数值

解决:

getQueryVariable (variable) {
  const after = window.location.hash.split('?', 2)[1]
  if (after) {
	const reg = new RegExp('(^|&)' + variable + '=([^&]*)(&|$)')
	const r = after.match(reg)
	if (r != null) {
	  return decodeURIComponent(r[2])
	} else {
	  return false
	}
  }
}

常用的方法

function getQueryVariable(variable)
{
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] == variable){return pair[1];}
       }
       return(false);
}

 

### Vue3 中通过 `router` 对象获取当前路径Vue3 的组合式 API 中,可以通过引入 `useRouter` 或者 `useRoute` 来操作路由对象。具体来说,要获取当前 URL 路径,可以使用 `route` 对象中的属性。 以下是实现方式: #### 使用 `useRoute` ```javascript import { useRoute } from 'vue-router'; const route = useRoute(); console.log(route.fullPath); // 输出完整的路径字符串,例如 '/home?page=1' ``` 这里的 `fullPath` 属性包含了整个路径及其查询参数[^1]。 #### 使用 `$route` (选项式 API) 如果你仍然在使用选项式 API,则可以直接访问 `$route` 对象的属性: ```javascript this.$route.fullPath; // 完整路径,包括查询参数和哈希值 ``` 此方法适用于传统的 Vue 组件结构[^2]。 #### 其他常用路径相关属性 除了 `fullPath` 外,还可以利用其他一些常用的 `$route` 属性来获取更详细的路径信息[^3]: - **`path`**: 返回当前路径的主体部分,不包含查询参数或哈希值。 - **`hash`**: 只返回 URL 哈希部分(如果有),例如 '#section'。 - **`query`**: 返回一个对象形式的查询参数集合。 示例代码如下所示: ```javascript // 示例:展示不同类型的路径数据 import { useRoute } from 'vue-router'; const route = useRoute(); console.log(route.path); // 仅显示基础路径,如 '/users' console.log(route.query); // 查询参数作为键值对的对象,如 { id: '1', page: '2' } console.log(route.hash); // 如果存在则为 '#anchor' console.log(route.fullPath);// 整体路径,含查询与哈希,如 '/users?id=1&page=2#anchor' ``` 需要注意的是,在配置路由时,路径的形式会影响最终解析的结果。比如相对路径 (`search`) 和绝对路径 (`/search`) 存在差异,这可能影响到某些场景下的导航逻辑[^4]。 --- ### 总结 无论是采用组合式还是选项式的开发模式,都可以轻松地借助 Vue Router 提供的功能来捕获并处理当前页面的路径详情。推荐优先考虑组合式 API 下的 `useRoute` 方法,因为它更加灵活且适合现代 Vue 应用程序架构设计需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值