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 ...
随机推荐
- docker容器与宿主机的数据交互
在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 方式一.Docker cp命令 docker cp :用于容器与主机之间 ...
- python爬虫05正则表达式
字符 描述 \ 将下一个字符标记为一个特殊字符(File Format Escape,清单见本表).或一个原义字符(Identity Escape,有^$()*+?.[\{|共计12个).或一个向后引 ...
- JVM常用调优工具介绍
前言 王子在之前的JVM文章中已经大体上把一些原理性问题说清楚了,今天主要是介绍一些实际进行JVM调优工作的工具和命令,不会深入讲解,因为网上资料很多,篇幅可能不长,但都是实用的内容,小伙伴们有不清楚 ...
- 手撸ORM浅谈ORM框架之Query篇
快速传送 手撸ORM浅谈ORM框架之基础篇 手撸ORM浅谈ORM框架之Add篇 手撸ORM浅谈ORM框架之Update篇 手撸ORM浅谈ORM框架之Delete篇 手撸ORM浅谈ORM框架之Query ...
- Shell 筛选符合条件的 ELF 文件
0 运行环境 本机系统:Windows 10 虚拟机软件:Oracle VM VirtualBox 6 虚拟机系统:Ubuntu 18 1 引言 - 编译过程 我们知道在 CPU 上执行的是低级别的机 ...
- C++ 设计模式 4:行为型模式
0 行为型模式 类或对象怎样交互以及怎样分配职责,这些设计模式特别关注对象之间的通信. 1 模板模式 模板模式(Template Pattern)定义:一个抽象类公开定义了执行它的方法的方式/模板.它 ...
- 配置PoE交换机功能
组网图形 PoE简介 随着网络中IP电话.网络视频监控以及无线以太网应用的日益广泛,通过以太网本身提供电力支持的要求也越来越迫切.多数情况下,接入点设备需要直流供电,而接入点设备通常安装在距离地面比较 ...
- pandas_知识总结_基础
# Pandas 知识点总结 # Pandas数据结构:Series 和 DataFrame import pandas as pd import numpy as np # 一,Series: # ...
- IDEA安装leetcode editor插件
leetcode > https://leetcode-cn.com/ 本地idea刷题可以直接同步提交,测试等相关操作 需要安装leetcode editor插件 1.idea setting ...
- IP 层收发报文简要剖析6--ip报文输出3 ip_push_pending_frames
L4层的协议会把数据通过ip_append_data或ip_append_page把数据线放在缓冲区,然后再显示调用ip_push_pending_frames传送数据. 把数据放在缓冲区有两个优点, ...