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 相关文章推荐
JavaScript 事件的一些重要说明
Oct 25 Javascript
js鼠标左右键 键盘值小结
Jun 11 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
Aug 03 Javascript
用jquery统计子菜单的条数示例代码
Oct 18 Javascript
JavaScript事件委托技术实例分析
Feb 06 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
javascript使用 concat 方法对数组进行合并的方法
Sep 08 Javascript
Vue.js计算属性computed与watch(5)
Dec 09 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 Javascript
express如何解决ajax跨域访问session失效问题详解
Jun 20 Javascript
ant-design-vue 快速避坑指南(推荐)
Jan 21 Javascript
element多个表单校验的实现
May 27 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
php curl模拟post请求小实例
2013/11/13 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
JavaScript 变量基础知识
2009/11/07 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
python实现在pickling的时候压缩的方法
2014/09/25 Python
python操作gmail实例
2015/01/14 Python
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
我爱家乡演讲稿
2014/09/12 职场文书
优秀团队申报材料
2014/12/26 职场文书
婚宴新郎致辞
2015/07/28 职场文书
golang 实现并发求和
2021/05/08 Golang
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL