Web Frameworks

What is beyond Vanilla JS?

Beyond Vanilla JavaScript

When building small, static websites, vanilla JavaScript, HTML, and CSS are all you need. But when you build modern, data-driven Single Page Applications (SPAs) — like dashboards, social networks, or email clients — managing the UI state with vanilla JS gets complex fast.

If a user clicks a button, you have to query the DOM, update the element text, update three other elements that depend on that data, send an API request, and handle potential errors. In a large app, this leads to fragile code.

Modern web frameworks and libraries solve this by introducing declarative programming and component-based architectures. Instead of manually writing step-by-step DOM updates, you describe what the UI should look like for a given state, and the framework updates the DOM automatically.


Library vs. Framework

The distinction between a library (like React) and a framework (like Angular) comes down to Inversion of Control:

  • A Library (React) is a tool you call. You are in control of the application architecture, routing, form validation, and state management. You choose which extra packages to install.
    • Analogy: Buying IKEA desk parts. You choose the table top, the legs, and the drawers. You are in charge of assembling them into a workstation.
  • A Framework (Angular) is a complete system that calls your code. It provides an opinionated structure, built-in routing, HTTP clients, form builders, and style scopes out-of-the-box.
    • Analogy: Buying a pre-configured designer office desk. It comes with custom-fitted drawers, cable management slots, and a monitor arm stand. You must use the desk's structure as designed.

Category Overviews

React (UI Library)

React is Meta's highly popular, plain JavaScript-first library focusing strictly on rendering the user interface (the View layer). Read the React Study Guide.

  • Developer Experience: Highly flexible, unopinionated, relies on NPM ecosystem for additional utilities.
  • Key Concepts: Virtual DOM, Reconciliation, JSX, Hooks (useState, useEffect), and Context API.

Angular (Enterprise Frontend Framework)

Angular is Google's TypeScript-first, fully featured framework designed for robust, enterprise-scale web applications. Read the Angular Study Guide.

  • Developer Experience: Highly structured, opinionated, batteries-included (routing, form validation, HTTP client built-in).
  • Key Concepts: TypeScript, Dependency Injection, Two-Way Data Binding, Directives, and RxJS Observables.

Spring Boot (Enterprise Backend Framework)

Spring Boot is VMware/Broadcom's Java-based, production-ready framework for building high-performance backend microservices and REST APIs. Read the Spring Boot Study Guide.

  • Developer Experience: Opinionated starter dependencies, auto-configuration (@EnableAutoConfiguration), embedded Tomcat web server.
  • Key Concepts: Inversion of Control (IoC), Dependency Injection (DI), Spring Data JPA, Spring Security 6, and Actuator metrics.

Frameworks & Libraries Comparison

FeatureReactAngularSpring Boot
Layer / FocusFrontend View LibraryFull Frontend FrameworkBackend Web & API Framework
Primary CreatorMeta (Facebook)GoogleVMware / Broadcom (Pivotal)
Primary LanguageJS / JSX / TSTypeScriptJava / Kotlin
Data / Control ModelUnidirectional Data FlowBidirectional Data BindingDependency Injection & Controller Routing
Server / RuntimeClient Browser / Node.jsClient BrowserEmbedded Tomcat / Jetty / JVM
Data PersistenceN/A (State / Store)N/A (RxJS / HTTP Client)Spring Data JPA / Hibernate / JDBC
Batteries Included?Minimal (Choose Ecosystem)Full Frontend StackFull Enterprise Backend Stack

How to Choose

Choose React if you value frontend UI flexibility, want to stay close to standard JavaScript, and prefer choosing your own packages for state and routing.

Choose Angular if you are building a large enterprise frontend application with a standardized TypeScript architecture.

Choose Spring Boot if you need a high-throughput, enterprise-grade Java backend for microservices, secure RESTful APIs, and relational data persistence.

Knowledge Check

What does the term 'Inversion of Control' refer to when comparing a Framework to a Library?

On this page