All Projects → IvanSafonov → Vue List Scroller

IvanSafonov / Vue List Scroller

Licence: mit
Simple and easy to use Vue.js component for efficient rendering large lists

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vue List Scroller

scrollbox
A lightweight jQuery custom scrollbar plugin, that triggers event when reached the defined point.
Stars: ✭ 15 (-76.92%)
Mutual labels:  infinite-scroll, scroll
react-tabllist
React-based customizable style table or list components that support event and callback functions.
Stars: ✭ 20 (-69.23%)
Mutual labels:  list, infinite-scroll
angular2-infinite-scroll
Infinite Scroll Directive For Angular (version 2 up to 2.3.1)
Stars: ✭ 16 (-75.38%)
Mutual labels:  infinite-scroll, scroll
React Intersection List
React infinite scroll using the Intersection <Observer /> API
Stars: ✭ 125 (+92.31%)
Mutual labels:  list, infinite-scroll
Infinite Ajax Scroll
Turn your existing pagination into infinite scrolling pages with ease
Stars: ✭ 804 (+1136.92%)
Mutual labels:  scroll, infinite-scroll
Masonic
🧱 High-performance masonry layouts for React
Stars: ✭ 209 (+221.54%)
Mutual labels:  list, infinite-scroll
react-infinite-scroll-list
Manage infinite list with the IntersectionObserver API
Stars: ✭ 20 (-69.23%)
Mutual labels:  infinite-scroll, scroll
ng-mat-select-infinite-scroll
Infinite Scroll directive for angular material select component
Stars: ✭ 39 (-40%)
Mutual labels:  infinite-scroll, scroll
React Virtual List
Super simple virtualized list React component
Stars: ✭ 597 (+818.46%)
Mutual labels:  list, scroll
Vue Mugen Scroll
Infinite scroll component for Vue.js 2
Stars: ✭ 532 (+718.46%)
Mutual labels:  scroll, infinite-scroll
Infinitescroll
Infinite Scroll (Endless Scrolling) for RecyclerView in Android
Stars: ✭ 183 (+181.54%)
Mutual labels:  scroll, infinite-scroll
Flatlist React
A helpful utility component to handle lists in react like a champ
Stars: ✭ 34 (-47.69%)
Mutual labels:  list, infinite-scroll
Ngx Ui Scroll
Infinite/virtual scroll for Angular
Stars: ✭ 145 (+123.08%)
Mutual labels:  scroll, infinite-scroll
vuejs-loadmore
A pull-down refresh and pull-up loadmore scroll component for Vue.js. Vue上拉加载下拉刷新组件
Stars: ✭ 62 (-4.62%)
Mutual labels:  infinite-scroll, scroll
Svelte Infinite Scroll
Infinite Scroll Component to Svelte
Stars: ✭ 102 (+56.92%)
Mutual labels:  scroll, infinite-scroll
Jxpagelistview
高仿闲鱼、转转、京东、中央天气预报等主流APP列表底部分页滚动视图
Stars: ✭ 377 (+480%)
Mutual labels:  list, scroll
Rsdayflow
iOS 7+ Calendar (Date Picker) with Infinite Scrolling.
Stars: ✭ 843 (+1196.92%)
Mutual labels:  scroll, infinite-scroll
Ngx Infinite Scroll
Infinite Scroll Directive for Angular
Stars: ✭ 1,024 (+1475.38%)
Mutual labels:  scroll, infinite-scroll
Awesome Pascal
A curated list of awesome Delphi/FreePascal/(any)Pascal frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff. Open source and freeware only!
Stars: ✭ 1,061 (+1532.31%)
Mutual labels:  list
Stack On A Budget
A collection of services with great free tiers for developers on a budget. Sponsored by Mockoon, the best mock API tool. https://mockoon.com
Stars: ✭ 10,836 (+16570.77%)
Mutual labels:  list

tests

vue-list-scroller

It can help with creating Twitter-like feed with thousands of items. It renders only visible part of the list.

Notes

  • Only page mode. It does not work inside an overflow container
  • Uses ResizeObserver
  • Items can have any size and change dynamically
  • Items can have margins
  • Supports infinite scroll

Usage

Add package to your project

npm install vue-list-scroller --save

Create item component

<template>
  <div>{{ 'Item ' + index + ' ' + data.text }}</div>
</template>

<script>
export default {
  props: {
    data: Object,
    index: Number,
  },
}
</script>

Add ListScroller component to your project

<template>
  <div>
    <list-scroller :itemComponent="item" :itemsData="items" :itemHeight="350" />
  </div>
</template>

<script>
import ListScroller from 'vue-list-scroller'
import Item from './item'

export default {
  components: { ListScroller },
  data() {
    return {
      items: [{ text: 'first' }, { text: 'second' }],
      item: Item,
    }
  },
}
</script>

Example

JSFiddle

You can clone this project and start example locally with these commands. It's in the dev folder.

npm install
npm run serve

ListScroller component interface

Props

  • itemsData: array of the data that is passed to items
  • itemHeight: approximate item height in pixels. it's used only at first rendering
  • itemComponent: vue js item component
  • renderViewports: height of the rendered part relative to viewport height. For example, if it's set to 5 and window inner height is 400, it will render 800 pixels before and after visible part of the list
  • onItemResize: the name of the item component function that is called on item resize

Events

  • bottom: emits when the last item is rendered. Used for infinite scroll

    Note: You need to disable scroll anchoring on the outer container. Without it after adding new items browser will scroll back to the bottom and bottom event will fire again.

    .container {
      overflow-anchor: none;
    }
    

Item component interface

Props

These properties are passed to the item component, all are optional.

  • index (Number): index of the item in the itemsData array
  • data (Object): data of the item from itemsData array

Similar projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].