reactable
reactable copied to clipboard
Cross-table with the functionalities of reactable and DT
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,
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.
Hey @glin , that was already very helpful! Thank you!
- 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 😛
Agreed. Server-side rendering is the only thing keeping me from using this instead of DT.
Same, I'm considering switching to {DT} due to the lack of server-side rendering on {reactable}.