codecamp

Ext.js 架构

Ext JS遵循MVC / MVVM架构。

MVC - 模型(model)-视图(view)-控制器(controller)体系结构(版本4)

MVVM - 模型(model)-视图(view)-模型视图(Viewmodel)(版本5)

这种架构不是强制要求的,但最好的做法是遵循这种结构,使您的代码高度可维护和组织。

项目结构

----------src
----------resources
-------------------CSS files
-------------------Images
----------JavaScript
--------------------App Folder
-------------------------------Controller
------------------------------------Contoller.js
-------------------------------Model
------------------------------------Model.js
-------------------------------Store
------------------------------------Store.js
-------------------------------View
------------------------------------View.js
-------------------------------Utils
------------------------------------Utils.js
--------------------------------app.js
-----------HTML files

Ext JS应用程序文件夹将驻留在您的项目的JavaScript文件夹中。

应用程序将包含控制器,视图,模型,存储,实用程序文件与app.js.

app.js:程式流程开始的主要入口,应该使用< script> 标签。 应用程序调用应用程序的控制器的其余功能。

Controller.js:它是Ext JS MVC架构的控制器文件。 这包含应用程序的所有控制,事件侦听器的最大功能的代码。 它具有为该应用程序中使用的所有其他文件定义的路径,例如store,view,model,require,mixins。

View.js:它包含应用程序的界面部分,显示给用户。 Ext JS使用各种UI丰富的视图,可以根据需要在这里扩展和自定义。

Store.js:它包含本地缓存的数据,它将在模型对象的帮助下在视图上呈现。 存储使用代理获取数据,代理具有为服务定义的路径以获取后端数据。

Model.js:它包含绑定要查看的商店数据的对象。 它有后端数据对象到视图dataIndex的映射。 在store的帮助下获取数据。

Utils.js:它不包括在MVC架构中,但是最好的做法是使代码清晰,不太复杂,更加可读。 我们可以在这个文件中编写方法,并在控制器或视图渲染器中调用它们。 这对代码可重用性目的也很有帮助。


在MVVM架构中,控制器被ViewModel替代。

ViewModel:在MVVM架构中,是不允许数据和视图直接通信的,只能通过ViewModel来通信,而ViewModel就是定义了一个Observer观察者。ViewModel是连接View和Model的中间件。

怎么运行的

例如,如果我们在UI中的两三个地方使用一个模型对象,如果我们在UI的一个地方更改值,其他地方的UI的值也会相应的做出改变。

它使开发人员更加轻松和简单,因为不需要额外的编码绑定数据。


Ext.js 命名约定
Ext.js 第一个程序
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }