Hacker News new | ask | show | jobs
by voat 417 days ago
Most of the modern front end frameworks can handle those use cases.

Solid, Vue, Svelte all have capable SPA frameworks and component libraries

1 comments

I don't want to be obnoxious but can you link some that have the range of MUI? It would be nice to have options.
Solid indeed does not have the same number of options that React has when it comes to UI component libraries. I've only used Solid on small throwaway projects, but I do like it better than React.

However, like you've pointed out, there's going to be things that you have to do yourself that in React you could likely depend on someone else for.

For tables though, I haven't used this in Solid, but it's pretty nice in general https://tanstack.com/table/latest

When I researched Tanstack, it looked flexible. But a recurring theme with users was that some options are not compatible with each other, while the documentation is silent about what functionalities are compatible with each other. Did you experience that?

For me such a thing is a red flag: incomplete documentation, feature gaps and unpredictability. Also, how difficult is it too fill the feature gap. Even if one succeeds, how maintainable would it be if changes are not accepted upstream.

No, but my use of it was fairly simple stuff, so I probably just didn't run into that. I do use react query and their router regularly and haven't had any major issues with it.
Good to hear, thanks for sharing.
Thank you! I have skimmed them, they look pretty and feel fast.

Unfortunately they seem not to match mui in breadth and depth.

We are using PrimeVue at my work and are very happy with it. I'm not super familiar with Mui so can't directly compare.

https://primevue.org/

Thank you. I remember I had a look at that. Made a quick look now at PrimeVue treetable [0], to compare it to MUI datagrid [1].

There seems to be a wide gap in feature scope and depth. For example, column grouping in [0] seems to be not available (it is in PrimeVue datagrid, but that misses support for data hierarchy).

___

0. https://primevue.org/treetable/

1. https://mui.com/x/react-data-grid/features/

If you're interested in data grids specifically, Svelte has https://vincjo.fr/datatables/examples/client/hello-world
Interesting! I need hierarchical data grids indeed (but they also seems to be the kind of shibboleth only the large libraries are able to speak).
https://suid.io/ is MUI for SolidJs
That is really interesting, thanks for sharing. Sounds almost too good to be true.

I saw however an open issue [0] about performance problems that seems to indicate that component libraries in Svelte suddenly becomes really slow?

  Another update. I wondered whether this was really unique to SUID or if other component libraries also have this problem. So I included Park UI and Kobalte (which seem to be the only other mature options besides SUID).

  Kobalte runs in ~168ms, and Park runs in ~382ms. Even that seems too slow to me. Is there something inherent to component libraries that makes them slow in Solid.js? (Next up, I should probably benchmark the same setup in other frontend frameworks.)
___

0. https://github.com/swordev/suid/issues/208

Yeah it is an interesting one. There is definitely a slowdown due to the amount of wrapping that happens. These sort of libraries tend to put component in component in component etc.. so there is a lot of prop iteration, Object.keys calls in Object.keys calls etc which when used with proxies can add up a bit. The tricky part is no one actually knows how slow these libraries are in say React. My suspicion they are slow there as well but maybe not as stark of a difference because of how fast Solid to begin with comparatively.

People who use Solid tend to measure stuff like this where as those who use React might have already reconciled themselves to performance issues.

Thanks for chiming in.

React doesn't win speed races, but the mentioned slow-downs are rather extreme and would be noticeable.

I agree that one should benchmark against React-MUI as the baseline. In fact, that would give Solidjs a meaningful (less synthetic) benchmark, as in this case we have a wide range of non-trivial one-for-one components to compare with. A goldmine for performance testing.

If SolidJS could outperform React in these kind of workloads you would have a great proposition.