Vue中location.search与location.hash的示例分析

  介绍

这篇文章给大家分享的是有关Vue中location.search与位置。散列的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强>背景

用过Vue路由器的童鞋应该对路由传参的方式多多少少有些印象,Vue路由器支持两种传参方式:查询与params;其中查询方式就是动态地在路由url后面追加参数,就是http的get请求方式;那Vue路由器与位置的搜索和散列有什么关系呢?

<强>正题

首先我们先来看一方下查询式传参

<强>路由一个

//,跳转到细节路由页   let  query =, {   ,,,的名字:美国广播公司(abc),   ,,,年龄:23岁,,,,,   }   router.push美元。({名称:& # 39;细节# 39;,,查询:,查询})

<强>路由细节

,创建(){//,才能打印查询参数   警报才能(JSON.stringify(这一点。route.query美元)),,,,   以前,}

运行截图

 Vue中location.search与位置。哈希的示例分析

一切好像都没有问题,但是由于我好奇心比较强,所有就稍微手贱了一下下,把地址栏中链接的细节和查询交换了一下位置,于是就出现了下面的情况,见截图

 Vue中location.search与位置。哈希的示例分析

感觉可能是Vue路由器的问题(人家路由器已经自动把查询加在散列后面了,你非要交换位置,似不似傻),在日常使用Vue路由器时只要我们的url不是手动把查询和散列交换位置,就不会出现问题;这里真正要说的是,在传统模式开发中,如果在url中搜索与散列同事存在,并且你要用到这些查询时,你的散列值一定要放在查询后面,下面我们以百度页面演示一下

<强>情况一:查询在散列前面

 Vue中location.search与位置。散列的示例分析

<强>情况二:查询在散列后面

 Vue中location.search与location.hash的示例分析

结果证明,当查询在散列后面时,连内置对象位置自身都取不查询到,难道你有什么好的办法吗,所有我们要避免情况二

<强>常用取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的示例分析