html计时器组件,vue 计时器组件的实现代码

5268f80b9b1e01f982625ef6fac83ca1.png

整理文档,搜刮出一个vue 计时器组件的代码,稍微整理精简一下做下分享。

:sendSync="sendSync"

:autoStart="autoStart"

:defaultVal="defaultVal"

>{{countString}}

export default {

data() {

return {

isStart: false,

globalTimer: null,//获取setInterval对象值

countString: '0秒', //用来显示时间

day: 0,

hour: 0,

minute: 0,

second: 0,

millisecond: 0,

countVal: this.defaultVal, //获取初始值

pauseTime: 0,

}

},

watch: {

'countString': {

deep: true,

handler: function(val, oldVal) {

var vm = this

if (vm.needSendSunc) {

vm.passToParent(val)

}

}

},

'needSendSunc': {

deep: true,

handler: function(val) {

var vm = this

if (val) {

vm.passToParent(vm.countString)

}

}

}

},

props: {

sendSync: {

type: Boolean,

default: false,

},

autoStart: {

type: Boolean,

default: false,

},

defaultVal: {

type: Number,

default: 0,

}

},

mounted() {

var vm = this

if (vm.autoStart) {

vm.startCountFn()

}

},

computed: {

needSendSunc: function() {

return this.sendSync

}

},

created: function() {

this.$on('startCount', function() {

this.startCountFn()

});

this.$on('stopCount', function() {

this.stopCountFn()

});

},

components: {},

methods: {

counterFn: function(counterTime) {

var vm = this

var nowDate = new Date().getTime()

if(vm.pauseTime == 0){

var num = nowDate - counterTime //计算时间毫秒差

}else{

vm.pauseTime = vm.pauseTime +10

var num = vm.pauseTime - counterTime //计算时间毫秒差

}

var leave1 = num % (24 * 3600 * 1000) //计算天数后剩余的毫秒数

var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数

var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数

vm.day = Math.floor(num / (24 * 3600 * 1000)) //计算相差天数

vm.hour = Math.floor(leave1 / (3600 * 1000))//计算相差小时

vm.minute = Math.floor(leave2 / (60 * 1000))//计算相差分钟

vm.second = Math.round(leave3 / 1000) //计算相差秒

if (vm.day > 0) {

vm.countString = `${vm.day}天 ${vm.hour}小时 ${vm.minute}分 ${vm.second}秒`;

} else if (vm.hour > 0) {

vm.countString = `${vm.hour}小时 ${vm.minute}分 ${vm.second}秒`;

} else if (vm.minute > 0) {

vm.countString = `${vm.minute}分 ${vm.second}秒`;

} else {

vm.countString = `${vm.second}秒`;

}

},

startCountFn: function() {

var vm = this

if (!vm.isStart) {

vm.countVal = vm.countVal ? vm.countVal : new Date().getTime()

var timer = setInterval(function() {

vm.counterFn(vm.countVal)

}, 10)

vm.globalTimer = timer

vm.isStart = true

}

},

stopCountFn: function() {

var vm = this

if (vm.isStart) {

window.clearInterval(vm.globalTimer)

vm.globalTimer = null;

vm.isStart = false

vm.pauseTime = new Date().getTime()

}

},

passToParent: function(data) {

var vm = this

this.$emit("getDataFromChild", data)

},

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果遭集体诉讼;华为或年底推出鸿蒙系统中低端智能手机;Facebook雇人记录用户语音通话以改善AI技术……...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

map语法获取index_复习Elasticsearch的基础语法(一)

之前实践过的Elasticsearch到现在基本上的语法我都回忆不起来了,所以准备写篇文章帮助自己复习一下,没有什么技术含量的分享,但是也分享给想初步了解的朋友们。就不介绍Elasticsearch了,直接进入正文(手动分割线0.0)-------------…

知识图谱数据构建的“硬骨头”,阿里工程师如何拿下?

摘要: 背景简介 为了不断提升搜索体验,神马搜索的知识图谱与应用团队,一直在不断探索和完善图谱的构建技术。其中,开放信息抽取(Open Information Extraction),或称通用信息抽取,旨在…

如何通过Dataworks禁止MaxCompute 子账号跨Project访问

摘要: 之前有很多DataWorks用户问MaxCompute访问权限问题,比如子账号为什么可以增删查别人在别的项目创建的表,即使这个子账号并没有加入那个项目 。 今天手把手教大家实现子账号授权并关闭跨Project的数据访问权限。 原文链接:ht…

填补服务机器人市场空白,九号机器人提供智能服务场景解决方案!

现如今,随着社会化和城市化进程的不断加快,快递、外卖等行业日益成熟,然而人工成本高、管理难度大等一系列问题成为该领域不得不思考的问题。那么,如何释放出更强大的服务信号,让“最后一公里”的窘境有一个全新的转变…

武汉大学计算机学院的李明,李明副研究员

个人简介:李明,武汉大学,计算机学院,副研究员,德国KIT的MRT实验室访问学者,在Audi无人驾驶项目中负责定位和地图部分,主要研究方向是多传感器集成、激光雷达数据处理、行驶环境感知方向的工作&a…

eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心

Sping bootEureka是服务中心,管理各种服务功能包括服务的注册、发现、熔断、负载、降级等。Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装。在dubbo的使用中我们通常使用zookeeper作为注册中心。在这里spring cloud使用Eureka, 用一个标准的sp…

基于阿里云数加MaxCompute的企业大数据仓库架构建设思路

摘要: 数加大数据直播系列课程主要以基于阿里云数加MaxCompute的企业大数据仓库架构建设思路为主题分享阿里巴巴的大数据是怎么演变以及怎样利用大数据技术构建企业级大数据平台。 本次分享嘉宾是来自阿里云大数据的技术专家祎休 背景与总体思路 数据仓库是一个面向…

拿来就能用!行,这本 Python 书彻底火了!

戳蓝字“CSDN云计算”关注我们哦!Python越来越牛了?自从连续半年拿下TOP1编程语言后,无论是薪资还是招聘需求,都越来越多了!同时,作为CSDN的编程小姐姐,我发现只要我推送Python相关的文章&#…

easyui datagrid url不请求请求_Go Web编程--深入学习解析HTTP请求

之前这个系列的文章一直在讲用Go语言怎么编写HTTP服务器来提供服务,如何给服务器配置路由来匹配请求到对应的处理程序,如何添加中间件把一些通用的处理任务从具体的Handler中解耦出来,以及如何更规范地在项目中应用数据库。不过一直漏掉了一个…

MaxCompute JOIN优化小结

摘要: Join是MaxCompute中最基本的语法,但由于数据量和倾斜问题,非常容易出现性能问题。一般情况下,join产生的问题有两大类: 数据倾斜问题:join会将key相同的数据分发到同一个instance上处理,如…

李锐:金龙客车DMS上云实践以及对网络、混合云、弹性、运维、安全的思考

摘要: 金龙客车CIO李锐的深度分享。DMS是大金龙管理轻客经销、售后服务、售后备件销售、三包索赔的信息子系统。精细管控国内88家轻客经销商活动,集中轻客订单、在制、收发车、库存、核销、回款等全程通业务,具有金龙整合-创新-增效的特色&am…

不小心执行 rm -f,该如何恢复?

戳蓝字“CSDN云计算”关注我们哦!源 / 程序员的那些事前言每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有 bug&#x…

flowable 启动流程到完成所有任务之间的数据库变化

先给出流程图,很简单的流程,就是3个UserTask ProcessDefinition pdrepositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult(); ProcessInstance piruntimeService.startProcessInstanceById(pd.getId());或…

如何使用dll ip转换_如何使用多功能转换插座更安全

作为专业的转换插头厂家,在制造多功能转换插座的时候都会做好了全面的安全考虑,包括但不仅限于以下安全设计:1. 高阻燃外壳材料:万浦电器的多功能转换插座的外壳大多以进口PC材料为主,阻燃温度高达750℃。在高温中不容…

2020计算机考研难度排名,2020年考研难度排名:100所高校上榜,中国人民大学排名第7...

据数据显示,2021年全国硕士研究生报考人数为341万左右,相对于2020年的290万,人数增加了近51万左右,而相对于100万左右考研计划录取人数,这也就意味着每3.5个人只有一个人能够被录取为硕士研究生,当然就考上…

玩转短视频?守护视频安全?AI智能提速?一分钱体验? 阿里云视频点播大招盘点...

摘要: 前言 随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用…

美女主播变大妈:在bug翻车现场说测试策略

戳蓝字“CSDN云计算”关注我们哦!美女主播变大妈:在bug翻车现场说测试策略文 | 珍妮兔这两天直播圈发生了一起严重的翻车事故。一个一直以“颜值主播”自称的网红女主播“乔碧萝殿下”,因为平台bug,露出了自己的真容,上…

一张图看懂阿里云网络产品[十一]云托付

摘要: 云托付(Cloud Hosting)是以阿里云的标准,提供给企业优质的机房托管资源、云专线网络以及增值服务,并与阿里云公有云产品结合,为企业搭建混合云提供基础资源。 原文地址:http://click.aliy…

springboot dubbo引入包_spring boot 集成 dubbo 企业完整版

一、什么是Spring Boot ?现阶段的 Spring Boot 可谓是太火了,为什么呢?因为使用方便、配置简洁、上手快速,那么它是什么?从官网上我们可以看到,它是 Spring 开源组织下的一个子项目,主要简化了 …