To SPA or not to SPA
SPA or Single Page Applications have become a huge trend in modern day web applications. Almost all the web applications written today use some kind of SPA framework whether it be Angular or React or Vue or something else. So the question then is do we really need a single page application for all use cases? Does single page application always help improve performance? Can we do without a single page application?
- What is SPA or Single Page Application?
- Drawbacks of a SPA
- Complex set of interactive components
- Tooling (babel, webpack, etc.) for browser to be able to handle it
- SEO unfriendly
- Extra effort to make it stateful
- High memory consumption
- Loading CSS and JS for large applications
- Breaks browser features
- Nothing works if JS is not allowed in browser
- When to use a SPA?
- Set of interactive components, constantly being updated separately
- Is your site more graphics-intensive?
- Real-time experience without page refresh
- Lots of state shared between screens
- How it fits for Facebook, trello, etc.
- Multi-page Applications
- It lets browser do the browsing
- Free SEO
- Better shareable links many times
- Hybrid Applications
- Combine best of both worlds
- Don’t SPA the entire web app
- How Github does it
- Conclusion: Love SPA, but understand when you need it
An open mind to hear some unfavorite things