1.2.0 • Published 6 years ago

react-big-list v1.2.0

Weekly downloads
5
License
MIT
Repository
github
Last release
6 years ago

About

React Big List is smart wrapper component for handling large collections on client-side.

Full API documentation

Features

  • Sorting
  • Query filtering
  • Custom filters
  • Pagination
  • Persistance between remounts
  • Internal caching 💥
  • Responsiveness (no UI blocking) 💥

Why

Sometimes backend API's doesn't support features like sorting/pagination/filtering. Implementing those operations on client side can lead to many edge-case errors which are easily overlooked. Moreover, performing those operations on huge collections is very expensive and may lead UI freezes and have sever impact on user experience. React Big List implements generic logic of generic logic of pagination, sorting, filtering and is thoroughly tested.

Live Playground

For examples of the react-big-list in action, go to https://Meemaw.github.io/react-big-list/.

OR

To run that demo on your own computer:

Usage

Import ReactBigList in your React component:

import ReactBigList from 'react-big-list';

Use props provided by react-big-list to render your collection.

render() {
  return (
    <ReactBigList members={['React', 'Angular', 'Ember']} paginationProps={{ pageSize: 2 }}>
      {({
        displayedMembers,
        sortColumn,
        sortDirection,
        setSort,
        ...rest
      }) => <div>{`Members sorted by ${sortColumn} in ${sortDirection} direction.`}</div>}
    </ReactBigList>
  )
}
As HOC
import { withBigListConfig } from 'react-big-list';

const MyBigList = withBigListConfig({
  pageSize: 10,
  queryStringFilter: (member, queryString) => member.name.length > queryString.length,
})(ListComponent);

export default MyBigList;

Installation

Install it from npm and include it in your React build process (using Webpack, Browserify, etc).

npm install --save react-big-list

or:

yarn add react-big-list

Testing

yarn test

Contributors

Thanks goes to these people (emoji key):

Matej💬 💻 🎨 📖 💡 🤔 🚇 👀

This project follows the all-contributors specification. Contributions of any kind welcome!

1.2.0

6 years ago

1.1.7

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago