Vue.JS 開源:vue-recyclerview-超大數據列表解決方案

78741720 7年前發布 | 23K 次閱讀 Vue.js 大數據 Vue.js開發 RecyclerView

vue-recyclerview

Mastering Large Lists with the vue-recyclerview

Preview

Demo

https://hilongjw.github.io/vue-recyclerview/

Requirements

Vue 2.0 +

Install

npm i vue-recyclerview
<script src="https://unpkg.com/vue-recyclerview"></script>>

Usage

<template>
  <div id="app">
    <RecyclerView
      :prerender="30" 
      key="mi" 
      class="recyclerview mi-list" 
      :fetch="MiFetch" 
      :item="MiItem" 
      :tombstone="MiTomstone"
    ></RecyclerView>
  </div>
</template>

<script> import Vue from 'vue' import RecyclerView from 'vue-recyclerview' import MiItem from './components/MiItem.vue' import MiTomstone from './components/MiTombstone.vue'

const totalCount = 1000 const MiFetch = function fetch (count, items) { count = Math.max(30, count) return new Promise((resolve, reject) => { setTimeout(() => { resolve([ ... mockData]) }, 200) }) .then(list => { return { list: list, count: totalCount } }) }

export default { name: 'app', data () { return { MiFetch: MiFetch, MiItem, MiTomstone } }, components: { RecyclerView: RecyclerView(Vue) } </script> </code></pre>

item

<template>
    <li class="mi-item">
        <a class="version-item">
            <div class="version-item-img">
                <img class="lazy" :src="data.img_url">
            </div>
            <div class="version-item-intro">
                <div class="version-item-name">
                    <p>{{data.name}}</p>
                </div>
                <div class="version-item-brief">
                    <p>{{ data.product_comment }}</p>
                </div>
                <div class="version-item-intro-price">
                    <span>{{ data.price_min }}</span>
                </div>
            </div>
        </a>
    </li>
</template>

<script> export default { props: { data: Object } } </script></code></pre>

tombstone

<template>
    <li class="mi-item tombstone">
        <a class="version-item">
            <div class="version-item-img">
                <img class="lazy" src="http://i8.mifile.cn/v1/a1/76f98ed9-86c5-dcda-0ba2-b79f62b0f195.webp?width=360&height=360">
            </div>
            <div class="version-item-intro">
                <div class="version-item-name">
                    <p></p>
                </div>
                <div class="version-item-brief">
                    <p></p>
                </div>
                <div class="version-item-intro-price">
                    <span>00.00</span>
                </div>
            </div>
        </a>
    </li>
</template>

License

MIT

the project inspired by infinite-scroller

 

 本文由用戶 78741720 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!