I asked Claude.ai:
which javascript front end frameworks are closely connected to the MVC pattern and its derivatives, and which are based on different patterns?
Here’s the response:
I’ll break down JavaScript frameworks by their relationship to MVC and related patterns:
Frameworks Closely Connected to MVC and Its Derivatives
Angular - Uses a component-based architecture that evolved from MVC. Earlier versions (AngularJS) explicitly used MVC, while modern Angular uses a pattern closer to MVVM (Model-View-ViewModel) with two-way data binding and dependency injection.
Backbone.js - One of the most explicit MVC implementations. It provides Models for data, Views for UI, and uses a Router for the Controller role. It’s quite direct in mapping to classical MVC concepts.
Ember.js - Built around MVC principles, though it uses an MVVM-like pattern. It has explicit Models, Templates (Views), Controllers, and Routes that follow conventional MVC organization.
Knockout.js - Implements MVVM pattern specifically, with ViewModels managing the relationship between Models and Views through declarative bindings.
Frameworks Based on Different Patterns
React - Uses a component-based, unidirectional data flow pattern rather than MVC. It focuses on the View layer and doesn’t prescribe how to handle models or controllers. The pattern is more functional and reactive.
Vue.js - While it has some MVVM influences, it’s primarily component-based with reactive data binding. It’s more pragmatic than dogmatic about architectural patterns.
Svelte - Takes a compiler-based, component-driven approach with reactive declarations. It’s quite different from traditional MVC, focusing on compilation rather than runtime frameworks.
The trend in modern JavaScript development has moved away from strict MVC toward component-based architectures with unidirectional data flow, largely influenced by React’s success.