日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Ember.jsMVC

Ember.js 框架使用模型-視圖-控制器(MVC)模式的應(yīng)用架構(gòu)。許多其它框架和平臺也 使用這個模式,所以你可能會聽說過。雖然這些概念一直是跨平臺的,但實現(xiàn)可能會有 相當(dāng)大的差異。因此,理解 Ember.js 的 MVC 實現(xiàn)與你熟悉的 MVC 實現(xiàn)有何不同是很 重要的。

MVC 基礎(chǔ)

MVC 模式的目的是分離出關(guān)鍵問題,這樣,對象的測試、維護和重用會更容易。

模型 是存放最多應(yīng)用數(shù)據(jù)的地方。模型通常是預(yù)先指定的,用模式或其它類型的模 板來形式化和優(yōu)化數(shù)據(jù)存儲和檢索。它通常被實現(xiàn)為一個數(shù)據(jù)類型、類或是數(shù)據(jù)庫表的 形式。一個木星的例子可以是一個 User ,它由 usernamepassword 兩個字 符串字段構(gòu)成??梢詣?chuàng)建并存儲許多 User 對象,并且它們通常不負(fù)責(zé)任何應(yīng)用邏輯 。

視圖 描述各種各樣應(yīng)用組件(通常是 模型 的一部分)的表現(xiàn)。視圖是用戶能看 得見并與應(yīng)用交互的部分。它們可以服從給定系統(tǒng)中任何可行的樣式化,并且不保持永 久的狀態(tài)。有許多標(biāo)記語言(比如 HTML/CSS)和模板語言(比如 Handlebars)可用于 編寫視圖。視圖的一個例子可以是一個用戶編輯頁面的模板,它包含處理創(chuàng)建并樣式化 標(biāo)簽和編輯用字段的代碼。

控制器 承擔(dān)連接起 模型視圖 的任務(wù)。它提供應(yīng)用的業(yè)務(wù)邏輯,從視圖中 接受輸入并在模型上執(zhí)行 CRUD 操作。一個控制器會從視圖對象中提取用戶名和密碼, 并與模型對象比較它們,用下一個顯示登入狀態(tài)的視圖(也可能是別的什么)替換當(dāng)前 的視圖。

Ember.js 實現(xiàn)

Ember 提供了多種對象來奠定輕松實現(xiàn) MVC 功能的基礎(chǔ)。例如:

  • DS.Model 允許你描述你的應(yīng)用的數(shù)據(jù)結(jié)構(gòu),包括模型之間的關(guān)系。
  • Ember.View 封裝 HTML 模板,讓你寫出可重用、易于維護的應(yīng)用視圖。
  • Ember.ArrayController 使得管理對象列表易如反掌,提供了在內(nèi)容中迭代的便利方法。
  • Ember.js 也添加了一種重要的新架構(gòu):一個可以在視圖、控制器和數(shù)據(jù)存儲間調(diào)停 的狀態(tài)管理器。它可以作為你的應(yīng)用的映射,并把轉(zhuǎn)換處理為一個用戶經(jīng)過它。

所有這些對象都繼承自 Ember.Object ,它提供了諸如綁定支持、觀察者、計算屬性 和繼承這樣的絕妙特性。

與 Ruby on Rails 的區(qū)別

一個很普遍的誤解就是 Ember.js 的 MVC 實現(xiàn)一定與 Ruby on Rails 的相似。這是不 正確的。

這個區(qū)別的原因就是 Ruby on Rails 是一個服務(wù)端框架,而 Ember 是一個客戶端框架 。[1]

Ember 在瀏覽器中運行,所以它可以檢測并相應(yīng)瀏覽器事件,諸如鼠標(biāo)點擊、手指點 擊、滾動、按鍵等等。接收這些事件的視圖對象可以把它們呈遞給控制器對象,而控制 器對象可以作用于數(shù)據(jù)模型來保存變更??蛻舳税l(fā)生的一切都在瀏覽器中,并且 ember-data 關(guān)注發(fā)送或接受去往或來自服務(wù)器 API 的合適數(shù)據(jù)。

另一方面,Rails 運行在服務(wù)器上。照此,它只能通過 HTTP 請求與客戶端通信。服務(wù) 器接受 HTTP 請求作為輸入(GET /、POST /user/1 等等),讀取路由并把它映射到控 制器行為,而不是直接從用戶接收事件??刂破髦髸媚P秃鸵晥D模板來構(gòu)造一個響 應(yīng)(通常是一個 HTML 文檔形式的)來用 HTTP 返回。用戶總是與一個基本上扁平,基于用戶請求的要求組合的頁面交互。

在構(gòu)建你的應(yīng)用程序架構(gòu)時,牢記這些差異是很重要的。

[1] 雖然在服務(wù)器端運行 Ember.js 是可行的,但這超出了本指導(dǎo)的范 疇。


本文題目:Ember.jsMVC
文章路徑:http://www.dlmjj.cn/article/cdsgjge.html