Skip to content

ichsanputr/vue3-image-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vue 3 Image Loader

NPM Downloads License

Vue 3 package for showing a loader while an image loading with default using skeleton loader.

Installation

npm install vue3-loader-image

// or use yarn
yarn add vue3-loader-image

Usage

Importing

This package support either composition and options api with typescript.

<script lang="ts">
import VueLoaderImage from 'vue3-loader-image';
import 'vue3-loader-image/dist/style.css'
</script>

Or use option api.

<script lang="ts">
import { defineComponent } from 'vue'
import VueLoaderImage from 'vue3-loader-image';
import 'vue3-loader-image/dist/style.css'

export default defineComponent({
  components: {
      VueLoaderImage
  }
})
</script>

Example

By default this package uses a skeleton loader, and there are 3 props that must be filled in, they are src, width, and height

<VueLoaderImage src="https://images.unsplash.com/photo-1439066615861-d1af74d74000" width="300px" height="300px"></VueLoaderImage>

We can use delay props to increase the time the image will be displayed, because sometimes the loader doesn't come out because the internet speed is good during the loading process or image was cached.

<VueLoaderImage delay="4000" src="https://images.unsplash.com/photo-1439066615861-d1af74d74000?q=80&w=1973" width="300px" height="300px"></VueLoaderImage>

That's will be show image after image loaded plus 4 second.

Beside skeleton loader you also can use custom css loader like using slot like this.

<template>
<VueLoaderImage delay="4000" src="https://images.unsplash.com/photo-1439066615861-d1af74d74000?q=80&w=1973" width="300px" height="300px">
  <div class="loader"/>
</VueLoaderImage>
</template>
<style>
.loader {
    // loader css animation & style here
}
</style>

See more css loader on https://css-loaders.com.

Props

For width, height, and pill accept string as intact css measurement units, please provide the unit Measurement after the value.

Attribute Type Is Required Description
src String true Image source url which will be displayed
width String true Width of image, accepting all unit measurentment (1px, 1rem, 1%, etc)
height String true Same like width
delay String no Image will be show after loaded plus delay value
circle Boolean no Border radius 100%
pill String no Border radius custom value
alt String no --
crossorigin String no --
loading String no --
longdesc String no --

About

Vue 3 package for showing a loader while an image loading

Topics

Resources

Stars

Watchers

Forks