4 ms·
I doubt I could build something like this https://codesandbox.io/s/eloquent-spence-d51td?file=/src/App.tsx https://codesandbox.io/s/eloquent-spence-d51td?file=
by realharo 6y ago
I doubt I could build something like this
https://codesandbox.io/s/eloquent-spence-d51td?file=/src/App.tsx https://codesandbox.io/s/eloquent-spence-d51td?file=/src/App...
in Qt or one of the "old school" desktop tools as quickly as I just did in a few minutes, that loads data from the web (mock) and displays them in this way (and has this level of flexibility for further development). There's just no way.
- detaro 6y agoHows the code in that link fundamentally different from what you'd write in e.g. Qt's QML?
- realharo 6y agoOne difference is that you can just use data directly as it comes from the net (or combine it with any other data in your application). You don't have to wrap it in models like this https://doc.qt.io/qt-5/qtquick-modelviewsdata-modelview.html https://doc.qt.io/qt-5/qtquick-modelviewsdata-modelview.html and then either recalculate that when the data changes or have a custom model class that does it. Though granted that is still a huge improvement over doing this in regular Qt Widgets (see the star example a few comments above), or one of the "old school" desktop GUI builders. This difference would be felt even more if the items also had some interactivity with state (e.g. expanded/collapsed things in them, lazy loaded extra info etc.) One consequence of the way rendering works is that I can just use language-native constructs like `if` or the ternary operator to either include or not include the "Top poster" line in the example. Instead of having to do something like this https://stackoverflow.com/questions/27695717/conditionally-include-component-based-on-property-value https://stackoverflow.com/questions/27695717/conditionally-i.... Similarly, you can use map/filter on arrays, transform the data more easily before rendering it, etc. Another difference is that JS/TS is the main language of the entire app, not a separate DSL that you can use for some parts and not for others. You can use async/await, have the entire npm ecosystem available, etc. Though QML is still hell of a lot better in this regard than old school VB or Delphi used to be.