首頁 > web前端 > js教程 > 基於Vue的延遲載入插件vue-view-lazy的介紹

基於Vue的延遲載入插件vue-view-lazy的介紹

不言
發布: 2018-07-04 11:54:18
原創
1996 人瀏覽過

這篇文章主要介紹了基於Vue的延遲加載插件vue-view-lazy,可以使圖片或者其他資源進入可視區域後加載,內容挺不錯的,現在分享給大家,也給大家做個參考。

基於vue的懶加載外掛程式

目的:圖片或其他資源進入視覺區域後載入

安裝使用

  1. 直接下載dist目錄下的vue-view-lazy.min.js使用

  2. 使用npm安裝

直接使用

#
<p id="app">
  <span v-view-lazy @model="handleModel"></span>
</p>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script src="./dist/vue-view-lazy.min.js"></script>
<script>
  Vue.use(vViewLazy.default,{});
  new Vue({
    el:&#39;#app&#39;,
    data:{
      msg:&#39;数据&#39;
    },
    methods:{
      handleModel(){
        console.log(&#39;出现了&#39;);
      },
    },
  })
</script>
登入後複製

npm:

$ npm install --save-dev vue-view-lazy
登入後複製

引入vue-view-lazy

.main檔案

#
import vView from &#39;vue-view-lazy&#39;
Vue.use(vView,{
  error:&#39;../../static/images/loading.png&#39;,
  loading:&#39;../../static/images/loading.gif&#39;,
});
登入後複製


懶載入圖片

.vue檔案

<template>
  <ul id=&#39;img&#39;>
    <li class="in" v-for="(item,i) in imgs" :key="i">
      <img src="#" alt="图片" v-view-lazy="item.src">
    </li>
  </ul>
</template>

<script>
  export default {
    data () {
      return {
        msg: &#39;Welcome to Your Vue.js App&#39;,
        imgs:[
          {src:&#39;../../static/images/img1.jpg&#39;},
          {src:&#39;../../static/images/img2.png&#39;},
          {src:&#39;../../static/images/img2.jpg&#39;},
          {src:&#39;../../static/images/img3.jpg&#39;},
          {src:&#39;../../static/images/img4.jpg&#39;},
          {src:&#39;../../static/images/img5.jpeg&#39;}, 
        ]
      }
    },
    mounted(){
    },
  }
</script>
<style scoped>
  ...
</style>
登入後複製


懶載入資料

.vue檔案

#
<template>
  <p>
    <!--@model自定义事件是在该dom在第一次出现在视口内时触发的方法-->
    <!--v-view-lazy=&#39;method&#39; 或 v-view-lazy=&#39;(e)=>method(e,...arg)&#39;-->
    <p class="cnt" v-for="(v,i) in msg" :key="i" v-view-lazy @model="(e)=>getAjaxContent(e,v.msg)">
      loading...
    </p>
    <p class="cnt" v-for="(v,i) in msg" :key="i" v-view-lazy @model="getAjaxContent()">
      loading...
    </p>
  </p>
</template>

<script>
  export default {
    data(){
      return{
        msg:[]
      }
    },
    mounted(){
      fetch(&#39;http://localhost:3000/test&#39;).then(res=>res.json()).then(res=>{
        this.msg = res;
      })
    },
    methods:{
      getAjaxContent(event,msg){
        event.innerText = msg
      },
    }
  }
</script>

<style scoped>
  .cnt {
    /*background: #ececec;*/
    height: 500px;
    margin-bottom: 50px;
  }
</style>
登入後複製

以上就是本文的全部內容,希望對大家的學習有幫助,更多相關內容請關注PHP中文網!

相關推薦:
基於Vue自訂指令實作按鈕級權限控制的方法


vue元件name的介紹

######

以上是基於Vue的延遲載入插件vue-view-lazy的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
vue
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板