1.0.1 • Published 4 years ago

@feizheng/react-chunk-list v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

react-chunk-list

List with time chunk for react.

version license size download

installation

npm install -S @feizheng/react-chunk-list

update

npm update @feizheng/react-chunk-list

properties

NameTypeRequiredDefaultDescription
classNamestringfalse-The extended className for component.
virtualboolfalse-If node name is React.Framgment.
nodeNameanyfalse'div'Use customize node name(tagName or ReactElement).
itemsarrayfalse[]List data source.
templatefuncfalsenoopList item template.
intervalnumberfalse100The timer duration.
chunknumberfalse5The chunk size.

usage

  1. import css

    @import "~@feizheng/react-chunk-list/dist/style.scss";
    
    // customize your styles:
    $react-chunk-list-options: ()
  2. import js

    import NxOfflineSw from '@feizheng/next-offline-sw';
    import ReactGithubCorner from '@feizheng/react-github-corner';
    import ReactSwUpdateTips from '@feizheng/react-sw-update-tips';
    import React from 'react';
    import ReactDOM from 'react-dom';
    import ReactChunkList from '@feizheng/react-chunk-list';
    import './assets/style.scss';
    
    class App extends React.Component {
      state = { hasUpdate: false, items: [] };
    
      componentDidMount() {
        NxOfflineSw.install({
          onUpdateReady: () => {
            this.setState({ hasUpdate: true });
          }
        });
        this.genList();
      }
    
      genList() {
        const items = [];
        for (let index = 0; index < 4000; index++) {
          items.push({
            id: index,
            value: `value - ${index}`
          });
        }
        console.time('render');
        this.setState({ items });
      }
    
      componentDidUpdate() {
        console.timeEnd('render');
      }
    
      render() {
        return (
          <div className="p-3 app-container">
            {/* Core components usage start */}
            <ReactChunkList
              items={this.state.items}
              interval={10}
              chunk={1000}
              template={({ item }) => {
                return <div key={item.id}>{item.value}</div>;
              }}
              className="bg-gray-800 mb-5 p-4 text-white"
            />
            <button className="button">I am a button</button>
            {/* Core components usage end */}
            <ReactSwUpdateTips value={this.state.hasUpdate} />
            <ReactGithubCorner value="https://github.com/afeiship/react-chunk-list" />
          </div>
        );
      }
    }
    
    ReactDOM.render(<App />, document.getElementById('app'));

documentation

license

Code released under the MIT license.