网络编程
位置:首页>> 网络编程>> JavaScript>> 浅谈vue-lazyload实现的详细过程

浅谈vue-lazyload实现的详细过程

作者:燕妮666_  发布时间:2024-04-29 13:09:17 

标签:vue,lazyload

本文介绍了浅谈vue-lazyload实现的详细过程,分享给大家,也给自己留个笔记

首先 ,在命令行输入npm install vue-lazyload&&cnpm install vue-lazyload

然后,在main.js里引入这个模块。


import 'VueLazyload' from 'vue-lazyload'
Vue.use(VueLazyload,{
  preload:1.3,//预加载的宽高
  loading:"img的加载中的显示的图片的路径",
  error:"img加载失败时现实的图片的路径",
  attempt:3,//尝试加载的次数
  listenEvents:['scroll','wheel','mousewheel','resize','animationend','transitionend','touchmove'], //你想让vue监听的事件
})

然后在app.vue的template里写一个


<img v-lazy="img.src"/>

然后在app.vue的script里写


data(){
 return {
  img:{
    src:"图片的真是路径"
       }
     }
   }

捋一下思路:


//main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import $ from 'jquery'
import 'assets/bootstrap/css/bootstrap.min.css'
import 'assets/bootstrap/js/bootstrap.min'
import router from '@/router/index'
import VueLazyload from 'vue-lazyload'
Vue.use(VueLazyload,{
 preload:1.3,
 loading:require('../static/imgs/ad3.png'),
//解释一下为什么是require('.....url'):因为vue自带webpack打包工具,如果是图片路径就会把他当成模块解析,所以直接引入就好了。
//记得把里面的路径换成自己的哦
 listenEvents:['mousewheel'],
})
//载入vue-router
//import Vue from 'vue'
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App }
})

//app.vue

<template>
<div id="app">
 <navbar></navbar>
 <router-view></router-view>
 <hello></hello>
<ul>
 <li v-for="item in imgUrl">
  <img v-lazy="item.src" alt="" width="300" height="150"/>
 </li>
</ul>
<img v-lazy='img[0].src'/>
</div>
</template>

<script>
 import hello from './components/Hello'
 import Navbar from '@/components/navBar'
 import route from '@/components/route'
export default {
name: 'app',
components:{
 hello,
 Navbar
},
data() {
 return {
  imgUrl: [
   {src: require('@/assets/imgs/ad1.png')},//记得把里面的路径换成自己的哦
   {src: require('@/assets/imgs/ad1.png')},//记得把里面的路径换成自己的哦
  ],
  img:[
   {src:require('@/assets/imgs/ad2.png')}//记得把里面的路径换成自己的哦
  ]
 }
}
}
</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>

这只是一个简单的vue-lazyload的实现,希望对大家的学习有所帮助,也希望大家多多支持asp之家。

来源:http://www.jianshu.com/p/bdbeac2d5920

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com