uview-ui工具函数的使用

这篇具有很好参考价值的文章主要介绍了uview-ui工具函数的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装

// 如果您的项目是HX创建的,根目录又没有package.json文件的话,请先执行如下命令:
// npm init -y

// 安装
npm install uview-ui

// 更新
npm update uview-ui

在main.js全局引入

import uView from 'uview-ui';
Vue.use(uView);

工具函数的使用

1. 函数防抖、节流
/**
 * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
 * 
 * @param {Function} func 要执行的回调函数 
 * @param {Number} wait 延时的时间
 * @param {Boolean} immediate 是否立即执行 
 * @return null
 */
this.$u.debounce(func, wait = 500, immediate = false)

this.$u.debounce(() => {
	alert('防抖')
}, 500)


/**
 * 节流原理:在一定时间内,只能触发一次
 * 
 * @param {Function} func 要执行的回调函数 
 * @param {Number} wait 延时的时间
 * @param {Boolean} immediate 是否立即执行
 * @return null
 */
this.$u.throttle(func, wait = 500, immediate = true)

this.$u.debounce(() => {
	throttle('节流')
}, 500)
2. 对象转url参数
/**
 * 对象转url参数
 * @param {*} data,对象
 * @param {*} isPrefix,是否自动加上"?"
 */
this.$u.queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets')

let test = this.$u.queryParams({a:1,b:2,c:3,d:4})
console.log(test) //输出 ?a=1&b=2&c=3&d=4
3. 路由封装
/**
 * 路由跳转方法,该方法相对于直接使用uni.xxx的好处是使用更加简单快捷
 * 并且带有路由拦截功能
 *  options对象内容 {
 *			type: 'navigateTo',
 *			url: '',
 *			delta: 1, // navigateBack页面后退时,回退的层数
 *			params: {}, // 传递的参数
 *			animationType: 'pop-in', // 窗口动画,只在APP有效
 *			animationDuration: 300, // 窗口动画持续时间,单位毫秒,只在APP有效
 *			intercept: false, // 是否需要拦截
 *		}
 *	params 传递的参数
 */
this.$u.route(options = {}, params = {})

this.$u.route({
	type: 'navigateTo',
	url: 'pages/order/GoodsReturn/index',
	params: {a:1,b:2}
})

4. 时间格式化
// 其他更多是格式化有如下:
// yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合
this.$u.timeFormat(dateTime = null, fmt = 'yyyy-mm-dd')

let date = this.$u.timeFormat(new Date())
console.log(date) // 输出 2023-04-13
5. 求两个颜色渐变之间的值
/**
 * 求两个颜色之间的渐变值
 * @param {string} startColor 开始的颜色
 * @param {string} endColor 结束的颜色
 * @param {number} step 颜色等分的份额
 * */
this.$u.colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10)

let colorList = this.$u.colorGradient('rgb(0, 0, 0)','rgb(255, 255, 255)')
console.log(color) //输出 ["#000000", "#1a1a1a", "#333333", "#4d4d4d", "#666666", "#808080", "#999999", "#b3b3b3", "#cccccc", "#e6e6e6"]
6. 生成全局唯一guid字符串
/**
 * 本算法来源于简书开源代码,详见:https://www.jianshu.com/p/fdbf293d0a85
 * 全局唯一标识符(uuid,Globally Unique Identifier),也称作 uuid(Universally Unique IDentifier) 
 * 一般用于多个组件之间,给它一个唯一的标识符,或者v-for循环的时候,如果使用数组的index可能会导致更新列表出现问题
 * 最可能的情况是左滑删除item或者对某条信息流"不喜欢"并去掉它的时候,会导致组件内的数据可能出现错乱
 * v-for的时候,推荐使用后端返回的id而不是循环的index
 * @param {Number} len uuid的长度
 * @param {Boolean} firstU 将返回的首字母置为"u"
 * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
 */
this.$u.guid(len = 32, firstU = true, radix = null)

let uuid = this.$u.guid(10)
console.log(uuid) // 输出 upOaeDJn7p
7. 获取主题相关颜色
// ,info|success|warning|primary|default|error
this.$u.color.success
8. 根据type获取图标名称
/**
 * 根据主题type值,获取对应的图标
 * @param String type 主题名称,primary|info|error|warning|success
 * @param String fill 是否使用fill填充实体的图标  
 */
this.$u.type2icon(type = 'success', fill = false)

this.$u.type2icon('success')
9. 打乱数组的顺序
this.$u.randomArray(array = [])

let arr = this.$u.randomArray([1,2,3,4,5,6])
console.log(arr) // 输出 [1, 5, 2, 3, 4, 6]
10. 对象和数组的深度克隆
// 深度克隆
this.$u.deepClone(obj)
11. 对象和数组的深度拷贝
// JS对象深度合并
this.$u.deepMerge(target = {}, source = {})

let newObj = this.$u.deepMerge({a:1,b:2,c:3}, {e:1,f:2,g:3})
console.log(newObj) // 输出 {a: 1, b: 2, c: 3, e: 1, f: 2,g:3}
12. 添加单位
// 添加单位,如果有rpx,%,px等单位结尾或者值为auto,直接返回,否则加上rpx单位结尾
this.$u.addUnit(value = 'auto', unit = 'rpx')

let value = this.$u.addUnit(200)
console.log(value) // 输出 200rpx
13. 规则检验
/**
 * 验证电子邮箱格式
 */
this.$u.test.email(value)

/**
 * 验证手机格式
 */
this.$u.test.mobile(value)

/**
 * 验证URL格式
 */
this.$u.test.url(value)

/**
 * 验证日期格式
 */
this.$u.test.date(value)

/**
 * 验证ISO类型的日期格式
 */
this.$u.test.dateISO(value)

/**
 * 验证十进制数字
 */
this.$u.test.number(value)

/**
 * 验证整数
 */
this.$u.test.digits(value)

/**
 * 验证身份证号码
 */
this.$u.test.idCard(value)

/**
 * 是否车牌号
 */
this.$u.test.carNo(value)

/**
 * 金额,只允许2位小数
 */
this.$u.test.amount(value)

/**
 * 中文
 */
this.$u.test.chinese(value)

/**
 * 只能输入字母
 */
this.$u.test.letter(value)

/**
 * 只能是字母或者数字
 */
this.$u.test.enOrNum(value)

/**
 * 验证是否包含某个值
 */
this.$u.test.contains(value)

/**
 * 验证一个值范围[min, max]
 */
this.$u.test.range(value)

/**
 * 验证一个长度范围[min, max]
 */
this.$u.test.rangeLength(value)

/**
 * 是否固定电话
 */
this.$u.test.landline(value)

/**
 * 判断是否为空
 */
this.$u.test.empty(value)

/**
 * 是否json字符串
 */
this.$u.test.jsonString(value)

/**
 * 是否数组
 */
this.$u.test.array(value)

/**
 * 是否对象
 */
this.$u.test.object(value)

/**
 * 是否短信验证码
 */
this.$u.test.code(value, len = 6)
14. 对象和数组的深度克隆
// 随机数
this.$u.random(min, max)
15. 去除空格
// 随机数
this.$u.trim(str, pos = 'both')
16. toast提示
// toast提示
this.$u.toast(title, duration = 1500)
17. 获取父组件参数
// 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法
// this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx
this.$u.getParent(name, keys)
18. 获取整个父组件
// 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法
// this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx
// 这里默认值等于undefined有它的含义,因为最顶层元素(
this.$u.$parent(name = undefined)
19. 获取系统信息
this.$u.os() //ios或android
this.$u.sys() //获取系统信息

文章来源地址https://www.toymoban.com/news/detail-790578.html

到了这里,关于uview-ui工具函数的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手写一个防抖节流函数及其使用场景

      防抖和节流是性能优化手段 什么是防抖? 防抖:单位时间内,频繁触发事件,只执行最后一次。 防抖的主要应用场景: 搜索框搜索输入。只需用户最后一次输入完,再发送请求 手机号、邮箱验证输入检测 什么是节流? 节流:单位时间内,频繁触发事件,只执行一次。

    2024年02月09日
    浏览(30)
  • 关于引入uview-ui @import “uview-ui/index.scss“;报错

    在APP.vue中加上lang=\\\"scss style lang=\\\"scss\\\"     /*每个页面公共css */ @import \\\"uview-ui/index.scss\\\"; /style  

    2024年02月02日
    浏览(36)
  • 使用vue2开发uni-app项目--引入uview-ui

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、安装 1、安装uview-ui 2、安装scss支持 二、配置 1、在main.js中引入uView库 2、uni.scss文件中引入uView的全局SCSS主题文件  3、在APP.vue文件中引入uView基础样式 4、在pages.json中 配置easycom组件模式

    2024年02月04日
    浏览(49)
  • vue项目使用lodash节流防抖函数问题与解决

    在lodash函数工具库中,防抖 _.debounce 和节流 _.throttle 函数在一些频繁触发的事件中比较常用。 创建一个 debounced(防抖动)函数,该函数会从上一次被调用后,延迟  wait  毫秒后调用  func  方法。 参数 func   (Function) : 要防抖动的函数。 [wait=0]   (number) : 需要延迟的毫秒数。

    2024年02月08日
    浏览(30)
  • 小程序如何使用防抖和节流?

    防抖(Debounce)和节流(Throttle)都是用来优化函数执行频率的技术,特别在处理用户输入、滚动等频繁触发的情况下,它们可以有效减少函数的执行次数,从而提升性能和用户体验。但它们的工作方式和应用场景有所不同。 防抖的主要思想是,当持续触发事件时,在事件最

    2024年02月13日
    浏览(27)
  • uview-ui报错:Component is not found in path node-modules/uview-ui/components/xx/xx

    解决方法: 1、uview-ui如果是npm安装 需要在pages.json中添加easycom配置 2、配置了以上还报错的话可能是 tempalte样式最外层没用标签包括着(只允许有一层用 view/view 包裹最外层) 3、如果试过方法还没解决的话,可以试试彻底 关闭开发者工具关闭,重启 如你还有其他更好的解决

    2024年02月11日
    浏览(33)
  • uniapp 查找不到uview-ui文件怎么办?

     用官方的方式总是报:文件查找失败:\\\'uview-ui\\\' at main.js 解决方案:  1.先安装uview-ui 下载成功是这样的: 而不是这样的:    这样的原因是你的项目里没有package.json包,先执行  npm  i   -y再安装uview-ui 2.main.js引入  uni.scss中引入 然后再APP.vue中全局引入样式,注意一定要下

    2024年02月02日
    浏览(52)
  • 【uni-app】安装uView-ui组件步骤

    uView是uni-app生态专用的UI框架,uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码, 可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台(引言自uni-app网)。但目前除微信小程序,其它小程序平台的兼容可能存在一些问题,后

    2024年02月14日
    浏览(31)
  • 关于 uview-ui grid宫格布局的页面跳转

    在使用 uview-ui 的宫格布局时,发现官方文档对于基本的图形展示还是很详细的,但是缺少点击事件。 于是 该组件外层为 u-grid 组件包裹,通过 col 设置内部宫格的列数 内部通过 u-grid-item 组件的 slot 设置宫格的内容 如果不需要宫格的边框,可以设置 border 为 false 结合uni的sw

    2024年02月15日
    浏览(37)
  • 一文搞懂如何在 React 中使用 防抖(Debounce)和 节流(Throttle)

    在前端的日常开发中,经常会使用到两个函数防抖(Debounce)和节流(Throttle),防抖函数可以有效控制在一段时间内只执行最后一次请求,例如搜索框输入时,只在输入完成后才进行请求接口。而节流函数则是每隔一段时间就执行一次请求。 在 React 应用开发时,不同于普通

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包