asfsdfsdf23rfwe's avatar

Best JS framework for a lightweight spreadsheet app

I'm trying to create a JavaScript Spreadsheet like widget, the feature I need are

real time data binding with the server, ioSocket, redis

The actual spreadsheet won't have very many capabilities other then staying in sync with the database.

I've been playing around with some frameworks, AngularJs, VueJS.

My initial impression of Angular was its to large and imposing for my needs. VueJs seems simpler and more suited, but the information supporting the framework is very small.

I've never used any other frameworks: react, ember, backbone etc

I was just hoping for a little advice about create an app like the one I described.

0 likes
5 replies
davorminchorov's avatar

It doesn't matter how small or big your application is. Angular can be used for small applications too. As for Vue, or any JS framework, you have to understand the fundamentals first before you can use it. Sure it doesn't really have a huge community but you should be able to find some help either here or on any Slack community which has javascript channels

asfsdfsdf23rfwe's avatar

What if i'm displaying potentially displaying thousands of rows that are all syncing in real time with the server? Angular in particular is relatively very heavy so having thousands of rows + a heavy frame work must be bad, at least, so i've head.

davorminchorov's avatar

Displaying thousands of rows is bad from a User Experience perspective. Also, why would you display all of them and waste a lot of server / browser resources?

I've seen some bad UIs and heard some bad ideas but I've never seen a web application where it displays thousands of records on the page (live or from database).

I might be wrong but it will confuse the user.

asfsdfsdf23rfwe's avatar

Google sheets by default displays 1,000

Its not expected that will happen but it could potentially if a user filters it that way, and I wouldn't like to stop them loading all the data if requested.

jekinney's avatar

Framework is of little consequence. Meaning it really depends on what your actually doing. As JavaScript is rendered client side the fastest "way" is to use no framework and just JavaScript. Otherwise it is about file size. Are you fully using angular or just a couple features? Are you using jquery too? All those files add you in size.

Sounds like your basically outputting a table with some dynamic features. Angular might be heavy for that, but it depends on what features now and possibly in the future. Vue is nice as its light weight compared (file size) but isn't as feature rich so you might have to re-dev the wheel.

One easy way to handle large data sets is paginate (either on button press or scroll event). Loading a 1000 rows really isn't to bad but once again depends on your db schema, hardware and amount of users.

No one can really answer your question but you at the end of the day, your the one who has to build and maintain it.

Please or to participate in this conversation.