uniapp vue2 时钟 循环定时器

效果展示:

时钟

写在前面:vue2有this指向,没有箭头函数

实验操作:封装一个时钟组件

uniapp vue2 封装一个时钟组件

核心代码:

this指向的错误代码,在下:

start() {

      this.myTimer = setInterval(function () {

        this.handleReTimer();//通过this调用,失败。

      }, 1000);

    },

时钟组件代码: 

<template><view class="myTimer_home"><view class="timerTitleBox">同步时间:</view><view class="timerDateBox">{{ timerDate }}</view><view class="timerTimeBox">{{ timerTime }}</view><view class="timerRefreshImgBox" @click="handleReTimer"><imagesrc="@/static/images/smartCabin/titleNav/refresh_icon.png"alt="一张图"/></view></view>
</template>
<script>
import { getNowFormatDate, getNowData } from "@/utils";
//获取当前日期
function getNowFormatDate() {let date = new Date(),year = date.getFullYear(), //获取完整的年份(4位)month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月)strDate = date.getDate(); // 获取当前日(1-31)if (month < 10) month = `0${month}`; // 如果月份是个位数,在前面补0if (strDate < 10) strDate = `0${strDate}`; // 如果日是个位数,在前面补0return `${year}-${month}-${strDate}`;
}
//获取当前时间
function getNowData() {var a = new Date();var b = a.getHours();var c = a.getMinutes();var d = a.getSeconds();function check(val) {if (val < 10) {return "0" + val;} else {return val;}}return check(b) + ":" + check(c) + ":" + check(d);
}
export default {data() {return {myTimer: null,timerDate: "",timerTime: "",};},methods: {handleReTimer() {this.timerDate = getNowFormatDate();this.timerTime = getNowData();},start() {this.myTimer = setInterval(this.handleReTimer, 1000);},},created() {this.start();this.handleReTimer();},destroyed() {clearInterval(this.myTimer);},
};
</script>
<style lang="scss" scoped>
.myTimer_home {width: 94%;height: 100%;font-size: 32rpx;display: flex;align-items: center;.timerDateBox {margin-right: 10px;}.timerRefreshImgBox {margin-left: 10px;display: flex;justify-content: center;align-items: center;&:hover {cursor: pointer;}image {width: 40rpx;height: 40rpx;}}
}
</style>

 时钟组件(Vue3)

封装组件代码:

<script setup>
import { useUserStore } from "@/stores";
const store = useUserStore();
import { getNowFormatDate, getNowData } from "@/utils/replaceTime.js";
import { computed, onMounted, onUnmounted, reactive, watch } from "vue";
import { getAssetsFile, numToStriTime } from "@/utils";onMounted(() => {data.timerDate = getNowFormatDate();data.timerTime = getNowData();
});
const myTimer = setInterval(() => {data.timerTime = getNowData();
}, 60000);
onUnmounted(() => {clearInterval(myTimer);
});
const data = reactive({timerDate: "",timerTime: "",
});
const handleReTimer = () => {data.timerDate = getNowFormatDate();data.timerTime = getNowData();
};
</script><template><div class="myTimer_bome"><div class="timerTitleBox">同步时间:</div><div class="timerDateBox">{{ data.timerDate }}</div><div class="timerTimeBox">{{ data.timerTime }}</div><div class="timerRefreshImgBox" @click="handleReTimer"><img:src="getAssetsFile('smartCabin/titleNav/refresh_icon.png')"alt="一张图"/></div></div>
</template><style lang="less" scoped>
.myTimer_bome {width: 100%;height: 100%;font-size: calc(100vw * 18 / 1920);color: rgba(74, 79, 87, 1);display: flex;align-items: center;.timerDateBox {margin-right: 10px;}.timerRefreshImgBox {margin-left: 10px;display: flex;justify-content: center;align-items: center;&:hover {cursor: pointer;}img {width: 20px;height: 20px;}}
}
</style>

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

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

相关文章

ctfshow web入门 文件包含 web151--web161

web151 打算用bp改文件形式(可能没操作好)我重新试了一下抓不到 文件上传不成功 改网页前端 鼠标右键&#xff08;检查&#xff09;&#xff0c;把png改为php访问&#xff0c;执行命令 我上传的马是<?php eval($_POST[a]);?> 查看 web152 上传马 把Content-Type改为…

js 数组 按列循环二维数组

期待效果&#xff1a; 核心代码&#xff1a; //js function handle(array) {var result [];for (let i 0; i < array[0].length; i) {var item []; for (let j 0; j < array.length; j) {item.push(array[j][i])} result.push(item);} return result; } 运行代码&a…

全面解析十七种数据分析方法,具象数据分析思维

一、介绍 在当今数据驱动的商业环境中&#xff0c;数据分析已经成为了企业获取竞争优势的关键工具。无论是为了优化运营效率&#xff0c;提高客户满意度&#xff0c;还是推动产品创新&#xff0c;企业都需要通过分析大量数据来做出明智的决策。数据分析方法多种多样&#xff0c…

Android详细介绍POI进行Word操作(小白可进)

poi-tl是一个基于Apache POI的Word模板引擎&#xff0c;也是一个免费开源的Java类库&#xff0c;你可以非常方便的加入到你的项目中&#xff0c;并且拥有着让人喜悦的特性。 一、使用poi前准备 1.导入依赖&#xff1a; 亲手测过下面Android导入POI依赖的方法可用 放入这个 …

3D桌面端可视化引擎HOOPS Visualize如何实现3D应用快速开发?

HOOPS Visualize是一个开发平台&#xff0c;可实现高性能、跨平台3D工程应用程序的快速开发。一些主要功能包括&#xff1a; 高性能、以工程为中心的可视化&#xff0c;使用高度优化的OpenGL或DirectX驱动程序来充分利用可用的图形硬件线程安全的C和C#接口&#xff0c;内部利用…

回顾闰年问题——基础

复习一下闰年问题&#xff1a; 定义&#xff1a;闰年是为了调整日历年与回归年之间的差异而设立的。由于地球绕太阳运行的周期是365天5小时48分46秒&#xff08;即365.24219天&#xff09;&#xff0c;而我们通常使用的公历年只有365天&#xff0c;所以每四年会累积大约一天的差…

深入理解GO语言——GC垃圾回收二

文章目录 前言一、Go V1.5的三色并发标记法总结 前言 书接上回&#xff0c;无论怎么优化&#xff0c;Go V1.3都面临这个一个重要问题&#xff0c;就是mark-and-sweep 算法会暂停整个程序 。 Go是如何面对并这个问题的呢&#xff1f;接下来G V1.5版本 就用 三色并发标记法 来优…

libVLC 音频立体声模式切换

在libVLC中&#xff0c;可以使用libvlc_audio_set_channel函数来设置音频的立体声模式。这个函数允许选择不同的音频通道&#xff0c;例如立体声、左声道、右声道、环绕声等。 /*** Set current audio channel.** \param p_mi media player* \param channel the audio channel…

Java(二)面向对象进阶

目录 面向对象 多态性 向下转型 Object equals() toString() clone() finalize() Static 单例模式 代码块 final 抽象类与抽象方法(或abstract关键字&#xff09; 接口 接口的多态性 接口的默认方法 内部类 成员内部类 局部内部类 枚举类 实现接口的枚举类 …

网络安全基础之网络协议与安全威胁

OSI(OpenSystem Interconnect)&#xff0c;即开放式系统互联。 一般都叫OSI参考模型&#xff0c;是ISO(国际标准化组织)组织在1985年研究的网络互联模型。 网络协议的简介&#xff1a; 定义&#xff1a;协议是网络中计算机或设备之间进行通信的一系列规则集合。 什么是规则?…

本地化部署离线开源免费语音识别API,支持多模态AI能力引擎

思通数科作为一家专注于多模态AI能力开源引擎平台&#xff0c;其技术产品涵盖了自然语言处理、情感分析、实体识别、图像识别与分类、OCR识别以及语音识别等多个领域。在语音识别这一细分市场&#xff0c;思通数科的技术产品中的音频文件转写服务有着相似的应用场景和功能特点。…

【Linux】达梦数据库安装部署(附详细图文)

目录 一、安装前的准备工作 1.检查操作系统配置 &#xff08;1&#xff09;获取系统位数 getconf LONG_BIT &#xff08;2&#xff09;查看操作系统release信息 cat /etc/system-release &#xff08;3&#xff09;查询系统名称 uname -a &#xff08;4&#xff09;查看操…