reactable icon indicating copy to clipboard operation
reactable copied to clipboard

Cross-table with the functionalities of reactable and DT

Open GitHunter0 opened this issue 5 years ago • 5 comments
trafficstars

reactable seems to be a fantastic package.

Do you have a cross-table listing the functionalities that are currently only available in DT, only in reactable or in both?

It would be really helpful for the users to decide which one to use, since I'm currently just relying on DT.

In particular, I would like to know if reactable handles big data frames that need server-side processing.

Here is a good example of cross table: https://hughjonesd.github.io/huxtable/design-principles.html

Thank you,

GitHunter0 avatar Nov 19 '20 00:11 GitHunter0

Hi, reactable doesn't support server-side rendering (https://github.com/glin/reactable/issues/22), so definitely continue using DT for that.

As for a cross-table of functionalities: I don't have anything like that, but I agree it would be helpful. For now, I can at least list some of the major comparison points from my perspective:

  • Maturity: DT is more stable and has a larger community that makes it easier to find help. reactable is still experimental and likely to make breaking changes.
  • Features: DT has a lot more features than reactable. Notable missing features in reactable include export buttons, cell editing, range/select input filters, and server-side rendering. However, reactable does make certain things easier, like custom cell rendering, embedding HTML widgets, expandable rows and nested tables, and row grouping/aggregation.
  • Styling: DT has built-in themes, but styling it beyond that is a pain since you need to override the DataTables CSS (at least for now - I think it'll get easier soon). reactable allows you to customize the theme in R without having to know CSS, and comes with less default styling.
  • Ease of use: This is just a pet peeve I have with DT - column options are specified as lists of lists, with 0-based column indices to identify columns. After years of using DT, it still takes me a few tries to get it right :joy:. In reactable, column options are specified using a function with auto-complete, and columns are identified by name. Similarly with custom cell rendering - in DT, you have to write JavaScript to do this, while in reactable, you can stay completely in R.
  • Documentation: Documentation is probably worth considering. The reactable docs come with a lot of examples and demos that you could adapt for your own tables.

There's definitely more than this, so I might write a more detailed comparison later. If you want a better picture, I think I'd just recommend reading the docs and evaluating which package fits better for your use case.

glin avatar Dec 05 '20 22:12 glin

Hey @glin , that was already very helpful! Thank you!

GitHunter0 avatar Dec 05 '20 23:12 GitHunter0

  • Features: DT has a lot more features than reactable. Notable missing features in reactable include export buttons, cell editing, range/select input filters, and server-side rendering. However, reactable does make certain things easier, like custom cell rendering, embedding HTML widgets, expandable rows and nested tables, and row grouping/aggregation.

For me this is the big one, I could not care less for cell editing. Also, you can add export buttons and input filters to a shiny app easily. Server-side rendering can be nice though 😛

algo-se avatar Dec 06 '20 10:12 algo-se

Agreed. Server-side rendering is the only thing keeping me from using this instead of DT.

klar-C avatar Jan 28 '21 01:01 klar-C

Same, I'm considering switching to {DT} due to the lack of server-side rendering on {reactable}.

aldomann avatar Feb 19 '21 17:02 aldomann