0.2.4 • Published 2 years ago

vue-coe-image v0.2.4

Weekly downloads
10
License
MIT
Repository
github
Last release
2 years ago

Explanation https://developers.google.com/web/tools/lighthouse/audits/offscreen-images

Disclaimer

In the past, it was very difficult and expensive to detect the visibility of a particular element.

The Intersection Observer API solves this problem in a really organized, efficient and performative way. It provides a workable template that we can observe to be notified when an element enters the viewport.

Competitive Diferentials

Warning The IntersectionObserver API is not fully supported by all modern browsers just yet, but there’s a polyfill for it maintained by the w3c.

Install

yarn add vue-coe-image

Include Plugin (to import globally)

import Vue from 'vue'

import 'vue-coe-image/dist/vue-coe-image.css'
import { VueCoeImage } from 'vue-coe-image'

Vue.use(VueCoeImage)

Register in component (to import locally)

<script>
import VueCoeImage from 'vue-coe-image'

export default {
  components: { VueCoeImage }
  ...
</script>

Pay Attention

import 'vue-coe-image/dist/vue-coe-image.css'

Use

<template>
  <div>
    <vue-coe-image
      :src="src"
      fallback="https://i.ytimg.com/vi/Yt9t9e9gmmw/maxresdefault.jpg"
    />
    <button @click="changeImage">coe</button>
  </div>
</template>

<script>
import VueCoeImage from 'vue-coe-image'

export default {
  components: { VueCoeImage },

  data () {
    return {
      src: 'https://3.bp.blogspot.com/-PRG407gZ9bE/V0TCSHFQKcI/AAAAAAAADjE/KbkLmxIXcjMcx4hKTFnDSQxcdPqGuNNWwCLcB/s1600/flamengologo.png'
    }
  },

  methods: {
    changeImage () {
      this.src = 'https://www.urbanarts.com.br/imagens/produtos/065033/Detalhes/urubu-do-mengao.jpg'
    }
  }
}
</script>

A Note on Performance

For this reason, immediately after finding the element, we use an instance method named disconnect to stop observing and make the lib more performative.

Props

NametyperequiredAbout
loaderImageStringfalseshows while the image is not loaded (has a default)
srcStringtrueImage to load when crossing viewport
srcsetStringfalseImages to be used for different resolutions
fallbackStringfalseAlso known as a 'placeholder', this prop avoids an error if it fails or delays loading the image.
animationBolleanfalseAnimation handler (default is true)
intersectionOptionsObjectfalseoptions by mdn
delayStringfalseDelay to show image
blurLevelNumberfalseBlur animation
durationNumberfalseAnimation duration time

Events

NameAbout
intersectTriggered when the image crosses the viewport for more complex animations and state manipulation
errorTriggered when an image upload error occurs
0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

4 years ago

0.2.0

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago