vue 获取元素在浏览器的位置_vue获取浏览器地址栏参数(?及/)路由+非路由实现方式...

本文介绍了在Vue中如何获取浏览器地址栏的参数,包括路由方式和JavaScript方法。同时,详细阐述了路由参数和非路由参数的获取,提供了解决方案。对于路由参数,通过`this.$route.query`或`this.$route.params`可以获取;对于非路由参数,通过自定义函数结合正则表达式解析。文章还涵盖了页面元素定位的相关知识。
摘要由CSDN通过智能技术生成

1、? 参数

1.1、路由取参方式

this.$route.query.id

前端跳转方式:

一、onclick方式

title="测试数据"

@click="test(row.id)"

target="_blank">

{{ row.title }}

test(id) {

this.$router.push({

path: "/m4detail",

query: {

id: id

}

});

}

二、a标签直接跳转

title="测试数据"

:href="javam4.com/m4detail/' + row.id"

target="_blank">

{{ row.title }}

简单粗暴,只要你的浏览器地址栏参数带 ?号,不管你是咋跳转过来的, this.$route.query 后面直接 . 对应的参数就可以取到值,比如 ?id=1323968&name=1111

对应效果如下:

1.2、js取参方式

在 mothod 方法添加如下方法:

getUrlKey: function (name) {

return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null

}

调用直接通过 getUrlKey(参数名称),具体如下:

2、/ 参数

2.1、路由方式

路由参数配置如下:

{ path: 'm4detail/:id', title: 'java面试网', name: 'm4detail', component: () => import('@/views/javam4/m4detail.vue') },

也就是由以前的 path: 'm4detail' > path: 'm4detail/:id'

这种方式需要 标签配合使用:

而界面跳转的时候因为通常是一个 标签,所以就可以不用了,直接套一层:

{{row.title}}

参数说明:

to:跳转路径,对应路由的 path

target:跳转方式,跟a标签用法一样

界面取参:

this.$route.params.id

效果如下:

2.2、非路由方式

在 mothod 方法添加如下方法:

getUrlKey: function (directory) {

return decodeURIComponent((new RegExp('/' + directory + '.*/([^/]+)/?$').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null

}

那么在这取值就是 m4detail,其实使用这种方式,无非还是用正则表达式切割一下,如果觉得正则不满足大家也可以自行修改。

let id = this.getUrlKey("m4detail");

console.log("this.id:"+id);

代码截图:

效果截图:

希望这篇文章对你有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值