vue中如何优雅的实现数字递增特效

本文介绍在Vue中优雅地实现数字递增特效,包括如何在数字大于特定值时转换单位。通过创建自定义指令v-change,利用数学关系优化动画时长,并讨论两种实现单位变化的方法:动态赋值和传递参数。最后推荐了一本关于Vue开发技巧的文档。
摘要由CSDN通过智能技术生成

需求

前几天项目开发中遇到一个需求,需要在数字更新时,实现其动态递增的效果

并且,在数字大于10000时,将单位进行转换,如数字大于10000时,单位从变为万

我们以vue中开发为例,一一实现下这两个需求。

实现

基本开发思路

实现数字递增,最容易的,我们应该可以想到通过setinterval函数实现数字累加功能。比如,我们的最终值是finanllyNum, 我们可以很快想到这样的函数:

let finalNum = 1200
let count = 0
let timer = setInterval(() => {count ++ if(count > finalNum){// 避免count大于finalNum最终数字显示不对count = finalNum// 清空定时器clearInterval(timer)timer = null}
}, 10); 

这个代码中,count是我们要实时在浏览器中显示的数字。我们每10ms实现数字进行一次递增,从而实现数字的动态递增特效。

指令的开发

由于项目中涉及很多这样的功能点,因此,这个功能应该被统一进行封装和复用。由于我们使用的是vue技术栈,显然,通过vue中的指令来实现这个功能最合适。

以下实现方案基于vue指令实现,因此,您需要参考官网了解学习vue中指令的基本用法。

vue2和vue3指令的用法大同小异,本示例以vue2进行演示

指令的基本结构

首先,我们创建change.js文件,写入指令的最基本结构

// js实现动态变化的数字
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值