react-data-display
This is a work in progress, API will most likely change.
react-data-display
is build upon fantastic react-virtualized
library. We provide simple and clear abstraction layer
for defining the data model and data presentation layer. You describe your data using DataField
components, provide data
to the DataDisplay
component and use preferred view component (at this point TableView
and ListView
components are available).
Plans for the very near future:
- add support for nested
<DataField>
components ("subheaders") - improve
<ListView>
implementation - improve everything regarding width/height (fixed values and auto-sizing/filling the parent component sizes)
- add simple default styles
- add support for style customization
- implement support for custom label and content/"cell" components
- implement redux-connected version of the
<DataDisplay>
Later improvements:
-
make generic
View
component thatTableView
andListView
(and later possibly other) can inherit. Such component would contain common logic/utils, e.g. for processing<DataField>
components -
improve build setup (esp. for npm publishing)
Notes
Build configuration is copied from the react-virtualized.
Basic Usage Example
import React from 'react';import DataDisplay DataField TableView ListView from 'react-data-display'; const data = id: 'id-1' name: 'name-1' test: 'test-1' id: 'id-2' name: 'name-2' test: 'test-2' id: 'id-3' name: 'name-3' test: 'test-3' id: 'id-4' name: 'name-4' test: 'test-4' id: 'id-5' name: 'name-5' test: 'test-5' // more items; Component { return <DataDisplay = => <TableView => <DataField ="id" ="ID" = /> <DataField ="name" ="NAME" = /> <DataField ="test" ="TEST" = /> <DataField ="test" ="TEST (again)" = /> </TableView> </DataDisplay> ; } Component { return <DataDisplay = => <ListView> <DataField ="id" ="ID" /> <DataField ="name" ="NAME" /> <DataField ="test" ="TEST" /> <DataField ="test" ="TEST (again)" /> </ListView> </DataDisplay> ; }