Vue-引入querystring模块获取url参数

  • querystring.parse(str,separator,eq,options)
  • querystring.stringify(obj,separator,eq,options)
  • querystring.escape(str)
  • querystring.unescape(str)
  • 结合location.search获取url参数

querystring模块npm官方文档
querystring模块node官方文档

querystring用于解析和格式化URL查询字符串的模块,主要用的方法有以下四个

querystring.parse()

querystring.stringify()

querystring.escape()

querystring.unescape()

qs是一个npm仓库所管理的包,可通过下面命令进行安装

npm install qs
// 或者
npm install querystring

.
然后在需要使用的页面引入QS库
Vue项目用es6引入

import querystring from 'querystring'

node中需要require引入:

const querystring = require("querystring")

import引入模块跟require引入模块的区别

引入之后就可以使用模块的方法

querystring.parse(str,separator,eq,options)

  • parse这个方法是将一个字符串反序列化为一个对象。
  • str:指需要反序列化的字符串;
  • separator(非必填):指用于分割str这个字符串的字符或字符串,默认值为"&";
  • eq(非必填):指用于划分键和值的字符或字符串,默认值为"="
  • options(非必填): 该参数是一个对象,里面可设置maxKeys和decodeURIComponent这两个属性
  • maxKeys:传入一个number类型,指定解析键值对的最大值,默认值为1000,如果设置为0时,则取消解析的数量限制
  • decodeURIComponent:传入一个function,用于对含有%的字符串进行解码,默认值为querystring.unescape。
querystring.parse("name=whitemu&sex=man&sex=women")
// 上面得到下面的对象
{name: 'whitemu',sex: ['man', 'women']
}

querystring.stringify(obj,separator,eq,options)

  • stringify这个方法是将一个对象序列化成一个字符串,与querystring.parse相对。
  • obj:指需要序列化的对象
  • separator(非必填):用于连接键值对的字符或字符串,默认值为"&";
  • eq(非必填):指用于划分键和值的字符或字符串,默认值为"="
  • options(非必填): 传入一个对象,该对象可设置encodeURIComponent这个属性
  • encodeURIComponent:传入一个function,用于对含有%的字符串进行解码,默认值为querystring.unescape。
  • encodeURIComponent:值的类型为function,可以将一个不安全的url字符串转换成百分比的形式,默认值为querystring.escape()。
querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] });
// 上面可以得到
'name=whitemu&sex=man&sex=women'querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] },"*","$")
// 上面可以得到
'name$whitemu*sex$man*sex$women'

querystring.escape(str)

  • escape可使传入的字符串进行编码
querystring.escape("name=慕白")
// 上面可以得到
'name%3D%E6%85%95%E7%99%BD'

querystring.unescape(str)

unescape方法可将含有%的字符串进行解码

querystring.unescape('name%3D%E6%85%95%E7%99%BD')
// 上面可以得到
'name=慕白'

结合location.search获取url参数

// 比如在下面的网址下
// https://36.vrm.cn/272?name=万丈测试&sex=2&birthday=1976-03-26&mobile=13049097000&src=xmt-jhy-FF_75_121&yinliuActivityId=121&yinliuUserId=3588001&yinliu_company_id=75// 获取name,sex,birthday,mobile参数,一行代码就可以搞定
const {name, sex, birthday, mobile} = querystring.parse(location.search.replace('?', '')// 获取参数对象
const params = querystring.parse(location.search.slice(1))
// 遍历参数对象 将每一个参数添加进userInfo对象里
Object.keys(params).forEach(key => {this.$set(this.userInfo, key, params[key])
})

不用querystring的话,原生js获取url参数

function getQueryString(name) = {let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)")let r = window.location.search.substr(1).match(reg)if (r != null) return decodeURI(r[2])return null}
// 获取url的name参数
const name = getQueryString(name)

谢谢你阅读到了最后
欢迎点赞评论交流

Vue-引入querystring模块获取url参数相关推荐

  1. js 获取url参数(QueryString)

    /// <summary> /// 获取url参数 /// 王洪岐 /// </summary> function QueryString(fieldName) { var u ...

  2. js获取url参数vue.js获取url参数 JQ获取url参数

    在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结. 1.window.location.href(设置或获取整个 URL 为字符串) ...

  3. gin框架之获取URL参数

    gin学习之获取URL参数 获取URL参数 获取querystring参数 获取form参数 获取json参数 获取path参数 参数的绑定 获取URL参数 在前面的学习中,我们已经学会了使用gin框 ...

  4. html的子页面获取自己url,如何从html页面获取url参数并将其显示在textarea中?

    我用下面的在我的HTML页面的JavaScript功能,我想没有textarea的任何连接操作正常显示参数....如何从html页面获取url参数并将其显示在textarea中? function g ...

  5. 使用jquery获取url以及jquery获取url参数的方法

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作1.jquery获取url很简单,代码如下1.window.location.href;其实只是用到了javascri ...

  6. php解析url并得到url中的参数及获取url参数的四种方式

    本文给大家介绍php解析url并得到url中的参数及获取url参数的四种方式,涉及到将字符串参数变为数组,将参数变为字符串的相关知识,本文代码简单易懂,感兴趣的朋友一起看看吧 下面一段代码是php解析 ...

  7. SQLAlchemy中模糊查询;JS中POST带参数跳转;JS获取url参数

    SQLAlchemy中模糊查询,如何like多个关键字 JS中POST带参数跳转 一个项目中要跳转到另外一个项目,还需要带参数 考虑到安全性的问题,最好是用POST跳转,不能再URL中拼参 所以找到了 ...

  8. .NET手记-JS获取Url参数

    最近为App做活动专区,其中很多活动都是采用html 5页面来制作的.一方面体量较小,制作快速,更新维护容易:另一方面,嵌入App后适配效果也不会很差. 这里我们采用混编形式来从native app传 ...

  9. ajax动态获取url参数值,获取URL参数的方法

    一.URL:统一资源定位符 1.URL组成 完整的URL由这几个部分构成: scheme://host:port/path?query#fragment 名词解释: scheme:通信协议.常用的ht ...

最新文章

  1. (0071)iOS开发之Category VS Extension区别理解
  2. hihoCoder1228(2015北京网络赛B题)
  3. 你这么努力为什么还是做不好?
  4. (转)为Ubuntu安装翻译词典(星际译王)
  5. win系统流畅度测试软件,视频对比:老电脑装Win7、Win10流畅性测试
  6. android单元测试作用,Android单元测试源码解读
  7. dc综合与pt静态时序分析(中文)_新能源汽车小三电系统(PDU/DC/OBC)技术研究详解...
  8. [leetcode] 413. 等差数列划分
  9. 深度神经网络—超参数调试
  10. C#连接Oracle数据库
  11. OPENCV+VS+QT,导入生成别人的.pro文件时提示opencv文件找不到,C1083:无法打开包括文件 opencv2/opencv.hpp
  12. VSCode中值得推荐的11个摸鱼插件
  13. 前端测试之用户体验测试
  14. 掌握通过计算机实现香农编码,信息论编码实验二香农编码
  15. 全概率公式和贝叶斯公式(转载)
  16. 什么是PLC的响应时间
  17. java-php-python-ssm南京新东方学校家校通系统计算机毕业设计
  18. 月末总结之大三大四规划(8.31)
  19. 关系数据模型——三个组成部分
  20. 360大战QQ演义之一:一场腾讯可能连底裤都输掉的战争!

热门文章

  1. 用记事本编写HTML蓝莲花,我的记事本!
  2. C语言学习笔记:算法
  3. 驱动精灵官方版v8.0.1230
  4. 客制化 GH60 XD60 像 Poker 一样的 60% 机械键盘 (1)设计键盘
  5. Java 8 集合排序的 10 个姿势
  6. 计算机dll修复,DLL缺失怎么办 DLL怎么修复
  7. 台北淡水渔人码头的风景
  8. h5语音聊天audio实战|仿微信语音效果|h5即时聊天系统
  9. 虚拟机vmware如何进入bios设置,设置启动项(装系统时用)
  10. Pinbar交易系统指标