Open In App

How to check an image is loaded or not in VueJS ?

While inserting an Image in a VueJS project, it may fail to load due to the following reasons:

Approach: We are going to use an event in <img> to check whether an image is loaded or not in VueJS, the event we are going to use is:



Project Setup:

Step 1: Create a Vue Project using the following command in the command line:



vue create image-load

Note: We have taken ‘image-load‘ as the name of the Project, you can choose any name according to your choice.

The project structure will look like this:

Step 2: After creating the project, add an image in the ‘assets folder’. We have added an image with the name – ‘gfg.png

Example: In this example, we are going to follow the following steps:

  1. In this example, we’re going to Insert an Image on the index page of our application.
  2. In the project “image-load“, we create a data variable ‘isLoaded‘ which has the default value “False“.
  3. A ‘description‘ data variable is also created which holds the Heading of the Page i.e “How to check if an image is loaded in VueJs?”.
  4. Assign a ‘@load‘ event to the Image.
  5. The name of the event will be ‘loadImage‘, and its function will be to change the value of ‘isLoaded‘ to “True” if the image gets loaded.
  6. And at last, we will print the value of ‘isLoaded‘ on our homePage, with the Image.

Now let’s see each step one by one with the implementation.




<template>
    <div>
        <h1>{{description}}</h1>
        <br>
  
        <img src="./assets/gfg.png" alt="" @load="loadImage">
        <h2>Image Loaded : {{isLoaded}} </h2>
    </div>
</template>
  
<script>
    export default {
        name: 'App',
        data() {
            return {
                description: "How to check if Image "
                    + "is Loaded in Vue.js or not?",
                isLoaded: false,
            };
        },
  
        methods: {
            loadImage() {
                this.isLoaded = true;
            }
        }
    }
</script>
  
<style>
    #app {
        font-family: Avenir, Helvetica, Arial, sans-serif;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-align: center;
        color: #2c3e50;
        margin-top: 60px;
    }
</style>

Run the application: In the command line, enter the following command:

npm run serve

Output: Open the browser and go to http://localhost:8080/  and you will see the following output:

Explanation: As we can see, we had Initialised “isLoaded” to False initially. The image gets loaded and ‘isLoaded‘ is assigned a True value and ‘isImageLoaded’ value is then fetched and displayed with the Image during Output.


Article Tags :