vue获取浏览器地址栏参数(?及/)路由+非路由实现方式
1、? 参数
浏览器参数形式:http://javam4.com/m4detail?id=1322914793170014208
1.1、路由取参方式
this.$route.query.id
前端跳转方式:
一、onclick方式
<a
title="测试数据"
@click="test(row.id)"
target="_blank">
<span>{{ row.title }}</span>
</a>
test(id) {
this.$router.push({
path: "/m4detail",
query: {
id: id
}
});
}
二、a标签直接跳转
<a
title="测试数据"
:href="javam4.com/m4detail/' + row.id"
target="_blank">
<span>{{ row.title }}</span>
</a>
简单粗暴,只要你的浏览器地址栏参数带 ?号,不管你是咋跳转过来的, 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、/ 参数
浏览器参数形式:http://javam4.com/m4detail/1322914793170014208
2.1、路由方式
路由参数配置如下:
{ path: 'm4detail/:id', title: 'java面试网', name: 'm4detail', component: () => import('@/views/javam4/m4detail.vue') },
也就是由以前的 path: 'm4detail'
> path: 'm4detail/:id'
这种方式需要 <router-link>
标签配合使用:
<router-link :to="路径"></router-link>
而界面跳转的时候因为通常是一个 <a>
标签,所以就可以不用了,直接套一层:
<router-link :to="`/m4detail/`+row.id" target="_blank">
<a>
<span>{{row.title}}</span>
</a>
</router-link>
参数说明:
- 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
}
其中 directory 表示那个目录后面的参数,比如:javam4.com/m4detail/11111111111
那么在这取值就是 m4detail,其实使用这种方式,无非还是用正则表达式切割一下,如果觉得正则不满足大家也可以自行修改。
let id = this.getUrlKey("m4detail");
console.log("this.id:"+id);
代码截图:
效果截图:
希望这篇文章对你有所帮助。
博客园:https://www.cnblogs.com/niceyoo
vue获取浏览器地址栏参数(?及/)路由+非路由实现方式的更多相关文章
- JS获取浏览器地址栏的多个参数值的任意值
getParamValue("id"); //http://localhost:2426/TransactionNotes.aspx?id=100 //返回值是100: // 根据 ...
- js获取url地址栏参数
前端开发中经常会遇到需要获取url地址栏参数问题 方法如下: function getQueryStringByName(name){ var src = "www.baidu.com?na ...
- 获取浏览器url参数
//获取浏览器url参数 var methods ={ getQueryString: function (name) { var reg = new RegExp('(^|&)' + nam ...
- vue项目获取当前地址栏参数(非路由传参)
项目中遇到一个需求,就是另一个管理系统带参直接单纯的跳转跳转到vue pc项目中的某个页面,后再初始化查询数据,参数以地址栏的形式传入 管理系统:打开新地址地址 let obj = { id: 21, ...
- 使用js获取浏览器地址栏里的参数
用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new ...
- Vue下URL地址栏参数改变却不能刷新界面
在完成毕业设计(基于Vue的信息资讯展示与管理平台)的过程中,处理如下图所示的 点击左侧栏目列表跳转到对应文章列表 的问题时,初次点击可以跳转到对应的页面,但是当第二次点击时,虽然地址栏的参数改变了, ...
- javascript/jquery获取url地址栏参数的方法
简洁jq方法获取url地址栏的参数 function getQueryVariable(variable){ var query = window.location.search.substring( ...
- php通过$_SERVER['HTTP_USER_AGENT']获取浏览器相关参数
最近不忙,同事在忙一个app项目.当听到领导安排让他做一个判断苹果还是安卓手机,如果是安卓手机下载安卓app.如果是苹果手机下载苹果app;然后我就上网搜了一下学习学习: php通过$_SERVER[ ...
- js获取浏览器地址栏传递的参数
function getQueryString(key){ var href=window.location.href; var reg = new RegExp(key +"=([^&am ...
随机推荐
- python pip源国内加速
Pip源国内加速list 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ ...
- Flink的DataSource三部曲之三:自定义
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- AMA指标原作者Perry Kaufman 100+套交易策略源码分享
更多精彩内容,欢迎关注公众号:数量技术宅.想要获取本期分享的完整策略代码,请加技术宅微信:sljsz01 AMA技术指标与原作者 Kaufman 说起 Perry Kaufman 这个名字,不少读者会 ...
- 2.1 自定义日志系统-log4net
说明 Prism中如果把日志级别设定为DEBUG,会显示框架加载信息 Prism默认是没有日志系统的 步骤 下载log4net包 Install-Package log4net; 在app.confi ...
- Netlink 内核实现分析 1
Netlink 是一种IPC(Inter Process Commumicate)机制,它是一种用于内核与用户空间通信的机制,在一般情况下,用户态和内核态通信会使用传统的Ioctl.sysfs属性文件 ...
- burp使用
只拦截特定网站数据包 我们以只拦截"www.baidu.com"为例 点击"Add"--布尔运算选择"And"--匹配类型选择"D ...
- javascript实现文件上传之前的预览功能
1.首先要给上传文件表单控件和图片控件设置name属性 <div class="form-group"> <label fo ...
- java后端开发三年!你还不了解Spring 依赖注入,凭什么给你涨薪
前言 前两天和一个同学吃饭的时候同学跟我说了一件事,说他公司有个做了两年的人向他提出要涨薪资,他就顺口问了一个问题关于spring依赖注入的,那个要求涨薪的同学居然被问懵了...事后回家想了想这一块确 ...
- css3系列之text-shadow 浮雕效果,镂空效果,荧光效果,遮罩效果
text-shadow 其实这东西,跟 box-shadow 差不多,没啥好说的不懂的话,点这里→ css3系列之详解box-shadow . 它只有 四个参数 x(第一个值设置x位置) y(第 ...
- MAC端口被占用的解决方法
html { overflow-x: initial !important } :root { --bg-color: #ffffff; --text-color: #333333; --select ...