成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Ember.js MVC

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

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

MVC 基礎

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

模型 是存放最多應用數據的地方。模型通常是預先指定的,用模式或其它類型的模 板來形式化和優化數據存儲和檢索。它通常被實現為一個數據類型、類或是數據庫表的 形式。一個木星的例子可以是一個 User ,它由 usernamepassword 兩個字 符串字段構成。可以創建并存儲許多 User 對象,并且它們通常不負責任何應用邏輯 。

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

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

Ember.js 實現

Ember 提供了多種對象來奠定輕松實現 MVC 功能的基礎。例如:

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

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

與 Ruby on Rails 的區別

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

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

Ember 在瀏覽器中運行,所以它可以檢測并相應瀏覽器事件,諸如鼠標點擊、手指點 擊、滾動、按鍵等等。接收這些事件的視圖對象可以把它們呈遞給控制器對象,而控制 器對象可以作用于數據模型來保存變更。客戶端發生的一切都在瀏覽器中,并且 ember-data 關注發送或接受去往或來自服務器 API 的合適數據。

Ember.js MVC Diagram

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

Rails MVC Diagram

在構建你的應用程序架構時,牢記這些差異是很重要的。

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

原文鏈接:http://emberjs.torriacg.org/guides/ember_mvc/#toc_ember-js

責任編輯:陳四芳 來源: emberjs.torriacg.org
相關推薦

2013-12-24 11:11:27

ember.jsJavascript

2013-12-24 16:03:26

Ember.js視圖

2013-12-24 14:50:39

Ember.js框架

2013-12-20 14:47:23

ember.js

2013-09-10 14:01:40

WebEmber.jsAngular.js

2016-11-14 15:51:42

JavaScriptAngular.jsReact.js

2013-05-30 15:16:26

javaScriptMVC模式

2013-10-16 10:11:35

JavaScript項目框架

2014-03-13 11:22:00

JavaScriptJS框架

2013-12-25 09:53:22

Ember.js應用

2013-12-25 10:08:42

ember.js異步處理

2013-12-24 13:20:28

EmberEmber.js

2012-02-09 16:09:17

JavaScript

2012-10-18 10:15:50

IBMdw

2013-03-21 13:56:21

JavaScriptBackBone

2015-05-05 11:12:50

JavaScriptMithril.js

2015-02-09 10:43:00

JavaScript

2017-06-28 08:31:11

Node.jsMVC微服務

2023-03-15 08:03:31

2024-04-09 16:19:16

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二区三区视频 | 欧美激情精品久久久久久 | 午夜日韩 | 成人免费一级视频 | 黄色av免费网站 | 亚洲精选一区二区 | 亚洲精品成人网 | 久热9| 免费在线观看一区二区 | 亚洲成人一区二区 | 奇米影视77 | 视频一区在线观看 | 久久网一区二区 | 91精品国产欧美一区二区成人 | 91精品国产91久久久久久吃药 | 免费v片在线观看 | 日韩欧美在线观看 | 成人污污视频 | 在线亚洲一区二区 | 久久久99精品免费观看 | 亚洲美女网站 | 亚洲精品视频免费 | 日本在线观看视频 | 中文字幕日韩欧美一区二区三区 | 欧洲妇女成人淫片aaa视频 | 99久久99久久精品国产片果冰 | 一区视频在线免费观看 | 中文字幕在线三区 | 一区二区三区四区国产 | 精品国产一区二区三区久久久蜜月 | 久草中文在线 | 一本岛道一二三不卡区 | 欧美在线视频a | 中文成人在线 | 欧美视频 亚洲视频 | 久久久久久国产精品 | 日韩毛片免费看 | 亚洲免费一区二区 | av资源在线看 | 91玖玖| 国产丝袜一区二区三区免费视频 |