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 BMI calculator 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 bmi-calculator
and select all the default options to create the project.
Create the BMI Calculator App
To create the BMI calculator, we write:
<template>
<form @submit.prevent="calculate">
<div>
<label>height in meters</label>
<input v-model.number="height" />
</div>
<div>
<label>mass in kg</label>
<input v-model.number="mass" />
</div>
<button type="submit">calculate</button>
</form>
<p>bmi: {{ bmi }}</p>
</template>
<script>
export default {
name: "App",
data() {
return {
height: 0,
mass: 0,
bmi: 0,
};
},
computed: {
formValid() {
const { height, mass } = this;
return +height > 0 && +mass > 0;
},
},
methods: {
calculate() {
if (!this.formValid) {
return;
}
const { height, mass } = this;
this.bmi = mass / height ** 2;
},
},
};
</script>
We create a form and add the submit event listener with the @submit directive.
prevent lets us do client-side submission instead of server-side submission.
Then we add the input boxes into the divs.
We bind the inputted value to the reactive properties with v-model .
The number modifier lets us convert entered the value to a number automatically.
In the component object, we have the data method.
It returns an object with the height , mass and bmi reactive properties.
Then we create the formValid computed property to check if the enteredheight and mass are bigger than 0.
We use this in the calculate method to check if the entered values are valid.
If they are, then we compute the bmi with the height and mass .
The ** operator is the exponentiation operator.
Conclusion
We can create a BMI calculator app easily with Vue 3 and JavaScript.