介绍
这篇文章给大家分享的是有关Vue中location.search与位置。散列的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
<强>背景强>
用过Vue路由器的童鞋应该对路由传参的方式多多少少有些印象,Vue路由器支持两种传参方式:查询与params;其中查询方式就是动态地在路由url后面追加参数,就是http的get请求方式;那Vue路由器与位置的搜索和散列有什么关系呢?
<强>正题强>
首先我们先来看一方下查询式传参
<强>路由一个强>
//,跳转到细节路由页 let query =, { ,,,的名字:美国广播公司(abc), ,,,年龄:23岁,,,,, } router.push美元。({名称:& # 39;细节# 39;,,查询:,查询})
<强>路由细节强>
,创建(){//,才能打印查询参数 警报才能(JSON.stringify(这一点。route.query美元)),,,, 以前,}>运行截图
一切好像都没有问题,但是由于我好奇心比较强,所有就稍微手贱了一下下,把地址栏中链接的细节和查询交换了一下位置,于是就出现了下面的情况,见截图
感觉可能是Vue路由器的问题(人家路由器已经自动把查询加在散列后面了,你非要交换位置,似不似傻),在日常使用Vue路由器时只要我们的url不是手动把查询和散列交换位置,就不会出现问题;这里真正要说的是,在传统模式开发中,如果在url中搜索与散列同事存在,并且你要用到这些查询时,你的散列值一定要放在查询后面,下面我们以百度页面演示一下
<强>情况一:查询在散列前面强>
<强>情况二:查询在散列后面强>
结果证明,当查询在散列后面时,连内置对象位置自身都取不查询到,难道你有什么好的办法吗,所有我们要避免情况二
<强>常用取url参数的方法(网上搜的)强>
<强> 1。正则方式强>
function GetQueryString(名字) { ,,var reg =, new 正则表达式(“(^ |,)“+,name +“=((^和)*)(和| $)“); ,,var r =, window.location.search.substr (1) .match(注册); ,,如果(r !=null) return unescape (r [2]);, return 零; } ,//,调用方法 警报(GetQueryString(“参数名1“)); 警报(GetQueryString(“参数名2“)); 警报(GetQueryString(“参数名3“));<强> 2。字符串方式强>
function GetRequest (), {, ,var url =, location.search;,//获取url中“?“符后的字串, ,var theRequest =, new 对象(),, ,if (url.indexOf (“?”), !=, 1), {, var 才能;str =, url.substr (1),, strs 才能=,str.split(”和“),, ,,(var 小姐:=,0;,小姐:& lt;, strs.length;,小姐:+ +),{, ,,theRequest (str[我].split (“=? [0]]=unescape (str[我].split (“=? [1]),, ,,}, }大敌; ,return theRequest; }//,调用方式 var urlParams =, GetRequest (); urlParams[“参数名称“]Vue中location.search与location.hash的示例分析