MV* (as in, model-view-wildcard) design patterns. There's MVC (model-view-controller), MVVM (model-view-view model), MVP (model-view-presenter), and probably some more.
Some of popular JavaScript MV* Frameworks
- Angular JS
- React JS
- Backbone JS
- Ember JS
- Knockout JS
Why MV* frameworks?
- Declarative HTML Approach
- Good for Single Page Applications (SPA)
- Easy Data Binding @ Two Way Data Binding - Automatically synchronizes values between Model and View two way data bindings
- Reusable Components
- MVC/MVVM Design Pattern
- Dependency Injection - Code dependencies are automatically injected where needed
- End to end Integration Testing/ Unit Testing with Karma
- Routing
- Templating - Dynamic Templates - Makes easy to update the UI (User Interface)
- Modules
- Services
- Expressions
- Filters
- Directives