Vue中util的工具函数实例详解


Posted in Javascript onJuly 08, 2019

Vue中util的工具函数,下面通过实例代码给大家介绍的非常详细,具体代码如下所示:

// 防抖函数
function debounce (fn, wait) {
let t
return () => {
let context = this
let args = arguments
if (t) clearTimeout(t)
t = setTimeout(() => {
 fn.apply(context, args)
}, wait)
}
}
function flatten (arr) { // 数组扁平化
return arr.reduce((result, item) => {
return result.concat(Array.isArray(item) ? flatten(item) : item)
}, [])
}
function handleMulitePerson (sPerson) {
console.log(44, sPerson.split(','))
if (typeof sPerson == 'string') {
let personArr = []
sPerson.split(',').forEach(item => {
 let obj = { userCode: item.split('/')[0], userName: item.split('/')[1] }
 personArr.push(obj)
})
return personArr
}
}
function uniqueArray (array, key) { // json数组根据key去重
var result = [array[0]]
for (var i = 1; i < array.length; i++) {
var item = array[i]
var repeat = false
for (var j = 0; j < result.length; j++) {
 if (item[key] == result[j][key]) {
  repeat = true
  break
 }
}
if (!repeat) {
 result.push(item)
}
}
return result
}
function setSessionStorage (key, val) {
if (typeof (val) == 'object') {
sessionStorage.setItem(key, JSON.stringify(val))
} else {
sessionStorage.setItem(key, val)
}
}
function getSessionStorage (key) {
return sessionStorage.getItem(key)
}
function removeStorage (key) {
sessionStorage.removeItem(key)
}
function urlParams () { // 获取链接参数
var str = location.search.length > 0 ? location.search.substring(1) : ''
var items = str.length ? str.split('&') : []
var args = {}
var item = null
var name = null
var value = null
for (let i = 0, len = items.length; i < len; i++) {
item = items[i].split('=')
name = decodeURIComponent(item[0])
value = decodeURIComponent(item[1])
if (name.length) {
 args[name] = value
}
};
return args
}
function urlAfterParams () {
var str = window.location.hash.length > 0 ? window.location.hash.substring(window.location.hash.indexOf('?') + 1) : ''
var items = str.indexOf('&') > 0 ? str.split('&') : str.split('?')
var args = {}
var item = null
var name = null
var value = null
for (let i = 0, len = items.length; i < len; i++) {
item = items[i].split('=')
name = decodeURIComponent(item[0])
value = decodeURIComponent(item[1])
if (name.length) {
 args[name] = value
}
};
return args
}
function parseParams (url) {
url = decodeURIComponent(url)
var params = {}
var idx = url.indexOf('?')
if (idx > 0) {
var queryStr = url.substring(idx + 1)
if (queryStr.length > 0) {
 var arr = queryStr.split('&')
 for (let i = 0; i < arr.length; i++) {
  var pair = arr[i].split('=')
  if (pair.length == 2 && pair[0].length > 0) {
   params[pair[0]] = pair[1]
  }
 }
}
}
return params
}
/**
选人下拉框数据:username(userCode)
*/
function getSelectUserName (userName, userCode) {
return userName + '(' + userCode + ')'
}
function getSelectLoginUser () {
var userInfo = getLoginUserInfo()
return getSelectUserName(userInfo.userName, userInfo.userId)
}
function getUserNameBySelectUserName (userName) {
let i = userName.indexOf('(')
return userName.substring(0, i)
}
/**
登录用户信息
userId
userName
mobileNo
@returns {any}
*/
function getLoginUserInfo () {
return JSON.parse(localStorage.getItem('userInfo'))
}
function getLoginUserCode () {
return JSON.parse(localStorage.getItem('userInfo')).userId
}
export default {
getNyr,
getYDate,
setSessionStorage,
urlParams,
urlAfterParams,
parseParams,
debounce,
handleMulitePerson,
uniqueArray,
flatten,
getSessionStorage,
removeStorage,
getSelectUserName,
getSelectLoginUser,
getLoginUserInfo,
getLoginUserCode,
getUserNameBySelectUserName
}

总结

以上所述是小编给大家介绍的Vue中util的工具函数实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jquery1.83 之前所有与异步列队相关的模块详细介绍
Nov 13 Javascript
让图片旋转任意角度及JQuery插件使用介绍
Mar 20 Javascript
导航跟随滚动条置顶移动示例代码
Sep 11 Javascript
js的image onload事件使用遇到的问题
Jul 15 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
Sep 23 Javascript
javascript中Number对象的toString()方法分析
Dec 20 Javascript
angular.foreach 循环方法使用指南
Jan 06 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
Apr 12 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
Aug 10 Javascript
vue设置动态请求地址的例子
Nov 01 Javascript
WebWorker 封装 JavaScript 沙箱详情
Nov 02 Javascript
详解基于 Node.js 的轻量级云函数功能实现
Jul 08 #Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 #Javascript
echarts统计x轴区间的数值实例代码详解
Jul 07 #Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
Jul 07 #Javascript
详解django模板与vue.js冲突问题
Jul 07 #Javascript
django中使用vue.js的要点总结
Jul 07 #Javascript
Vue使用lodop实现打印小结
Jul 06 #Javascript
You might like
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
php多文件上传下载示例分享
2014/02/20 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
基于vue实现分页效果
2017/11/06 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
跟老齐学Python之list和str比较
2014/09/20 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
Python3使用requests发闪存的方法
2016/05/11 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
北大研究生linux应用求职信
2013/10/29 职场文书
百年校庆节目主持词
2014/03/27 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
保证书格式
2015/01/16 职场文书
表扬信格式模板
2015/05/05 职场文书
宝塔更新Python及Flask项目的部署
2022/04/11 Python