npm install --save vue-image-preloader
Installing the plugin will globally add the vue-image-preloader
component to your project.
플러그인을 전역적으로 설치하여 vue-image-preloader
컴포넌트를 사용할 수 있습니다.
import imagePreloader from 'vue-image-preloader'
Vue.use(imagePreloader)
you can also import the standalone component.
단일 컴포넌트에 설치하여 사용할 수도 있습니다.
import { imagePreloader } from 'vue-image-preloader'
export default {
components: {
imagePreloader,
},
}
Nuxt.js
module.exports = {
plugins: [
{ src: '~plugins/vue-image-preloader-installer.js', ssr: false }
]
}
<!-- choose any one props type -->
<image-preloader
:src="'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png'"
/>
<image-preloader
:src=['https://nodejs.org/static/images/logo.svg', 'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png']
/>
<image-preloader
:src="'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png'"
:srcs="'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png'"
:image="'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png'"
:images="'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png'"
:img="'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png'"
:imgs="'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png'"
/>
specific onload & all src onload event
특정 로드와 전체 로드에 대한 onload 이벤트를 사용할 수 있습니다.
<template>
...
<image-preloader
:id="test"
:srcs=['https://nodejs.org/static/images/logo.svg', 'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png']
@loaded="loadedOne"
@loaded-all="loadedAll"
/>
...
</template>
<script>
import { imagePreloader } from 'vue-image-preloader'
export default {
components: {
imagePreloader
}
...
methods: {
loadedOne(e) {
console.log(e) // ImagePreloader id, loaded src, src index, loaded count, src list length, progress
console.log(e.progress)
},
loadedAll(e) {
console.log(e) // ImagePreloader id or boolean
}
}
...
</script>
with global component
전역 컴포넌트로 사용할 경우입니다.
<template>
...
<no-ssr>
<image-preloader
:id="test"
:srcs=['https://nodejs.org/static/images/logo.svg', 'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png']
@loaded="loadedOne"
@loaded-all="loadedAll"
/>
</no-ssr>
...
</template>
<script>
...
methods: {
loadedOne(e) {
console.log(e) // ImagePreloader id, loaded src, src index, loaded count, src list length, progress
console.log(e.progress)
},
loadedAll(e) {
console.log(e) // ImagePreloader id or boolean
}
}
...
</script>
$imagePreload
global method
플러그인을 전역적으로 설치했다면, $imagePreload
메소드를 사용할 수도 있습니다.
<script>
...
async mounted() {
this.$imagePreload('https://nodejs.org/static/images/logo.svg')
.then(r => console.log(r)) // return loaded img element
await this.$imagePreload([
'https://nodejs.org/static/images/logo.svg',
'https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png'
], (e => console.log(e))) // element, loaded src, src index, loaded count, src list length, progress
const el = document.getElementById('test')
await this.$imagePreload('https://nodejs.org/static/images/logo.svg', el)
await this.$imagePreload.reset()
await this.$imagePreload.reset(el)
}
...
</script>