1. 程式人生 > >ext.js的mvc

ext.js的mvc

for jsm 另一個 com 取數據 取數 開發 後臺 視圖組件

1.Ext.js的mvc開發模式

  在ext.js4.0以後引入mvc開發模式,將js分成model-view-controller三層,使得大量js代碼變得更加易於維護和重用,這就是ext.jsmvc模式的初衷。

2.ext.js文件夾模式

  1>controller:所有的控制器

  2>view:所有的視圖組件

  3>store:所有的儲存數據源組件

  4>model:所有的數據模型組件

  5>自己定義組件和工具:data/lib/util

技術分享

  view中會有一個viewport.js,這個東西就像一個骨架一樣,上面可以拼裝各種view,具體的說,就是各種布局形式和窗體控件,view界面的載體,一個頁面只能有一個viewport。

  view是純粹的界面組件(比如form ,grid ,window),通過store來加載數據並展示到界面上,界面控件的響應都寫在controller裏面,view對controller的存在一無所知,也沒有代碼上的依賴。

技術分享

  controller的角色完全是個粘合劑,它在加載之初,會幫忙加載跟其有關的model,store,view類,而其真正的作用,是通過一系列的事件處理函數,確定每個view上面界面組件對用戶交互行為的響應方法,可以說是一堆事件處理器函數的集合,這裏面主要通過一個control成員函數來進行事件綁定,通過另一個叫componentquery的組件,使用類似css selector的語法來定位界面上的組件,並為其綁定事件處理器。

  Model是對抽象數據的具體化,簡單理解就是數據庫裏面的一行記錄。

  Store是對通過網絡加載數據的過程的一個抽象,Store通過data發送請求(一般為ajax請求)到後臺獲取數據(一般返回json格式),Store依賴於Model,通過關聯的Model對象才知道如何將取回的數據對象化。

3.ext.js的開發環境

  功能:加載樣式表、核心庫,app.js

  <script type="text/javascript" src="include-ext.js"></script>
  <script type="text/javascript" src="all-classes.js"></script>
  <script type="text/javascript" src="app.js"></script>

app.js中加載單頁面的唯一入口Ext.container.Viewport ,進入view,在加載控制器文件controllers

 技術分享

controller 控制器中加載各種組件---各種js文件(自己編寫的js文件),但不加載Viewport組件。

當autoCreateViewport設置為true時表示框架自動創建Viewport組件。


 
  










ext.js的mvc