Guide applies to: modern

Ext JS is a JavaScript library, written and structured to better perform under the demands of a web application in the browser.

One of the tenants of web applications is to avoid global definitions of objects. As a result a best practices pattern has emerged to encourage as much local definition of behavior in an app as possible. Embedded in the pattern are the structural prevention of memory leaks and the integrated performance of garbage collection, among other benefits.

A View Package * applies some concepts of separation of concerns for your app to the following criteria:

The MVVM Pattern

Model/View/ViewModel, a flavor of MV* detailing the means by which the two main concerns of our app, the data and the view, are connected by some implementation of a business logic connection, the controller, which allows one to update the other, detailed below:

View

A member of the View Package directly responsible for all UI widget presentation features like child elements and their layout, height, width, CSS classes. etc, from which, if necessary, references to the data and logic for that view are factored out to dedicated files/classes.

ViewModel

A member of the View Package dedicated to specifications of data for that view/component, such as stores and data binding and scoped to that view/component

ViewController

A member of the View Package dedicated to any business logic, where all event handling is detailed and scoped to that view/component

*Sometimes referred to as a ++view bundle++