Vue 3 is the latest version of the easy to use Vue JavaScript framework that lets us create front end apps.
In this article, we’ll look at how to create a digital clock app with Vue 3 and JavaScript.
Create the Project
We can create the Vue project with Vue CLI.
To install it, we run:
npm install -g @vue/cli
with NPM or:
yarn global add @vue/cli
with Yarn.
Then we run:
vue create digital-clock
and select all the default options to create the project.
Create the Digital Clock App
We can create a digital clock app with the following code:
<template>
<div>{{ dateTime.hours }}:{{ dateTime.minutes }}:{{ dateTime.seconds }}</div>
</template>
<script>
const date = new Date();
export default {
name: "App",
data() {
return {
dateTime: {
hours: date.getHours(),
minutes: date.getMinutes(),
seconds: date.getSeconds(),
},
timer: undefined,
};
},
methods: {
setDateTime() {
const date = new Date();
this.dateTime = {
hours: date.getHours(),
minutes: date.getMinutes(),
seconds: date.getSeconds(),
};
},
},
beforeMount() {
this.timer = setInterval(this.setDateTime, 1000);
},
beforeUnmount() {
clearInterval(this.timer);
},
};
</script>
In the template, we display the hours, minutes, and seconds with dateTime.hours
, dateTime.minutes
and dateTime.seconds
respectively.
In the data
method, we return the dateTime
object with the hours
, minutes
, and seconds
property.
new Date()
returns an object the current date and time.
getHours
returns the hour of the date.
getMinutes
returns the minutes of the date.
getSeconds
returns the seconds of the date.
In the setDateTime
method, we get the current date with new Date()
.
And we call getHours
, getMinutes
, and getSeconds
to get the time parts.
In the beforeMount
hook, we call setInterval
with the this.setDateTime
method to run it every second.
The 2nd argument specifies that it runs every 1000 milliseconds, which is 1 second.
It returns the timer object which we assign to the timer
reactive property.
beforeMount
runs when the component is mounting.
beforeUnmount
calls the clearIntrval
method with the timer
reactive property to clear the timer when the component unmounts.
In the template, we show the time and it updates every second.
Conclusion
We can create a digital clock easily with Vue 3 and JavaScript.