我現在正在考慮以哪種方式組織我的代碼,使其更具可擴展性和可管理性。我想在不使用框架的情況下更好地理解JavaScript中的MVC體系結構。MVC in Vanilla JavaScript
原來這就是我理解迄今(請請請糾正我,如果我錯了):
型號: 網站的組織結構/網絡應用程序內容(圖片,複製,下載內容等...) 也有內容操縱所需的邏輯。所以在JavaScript中,模型可能是一個JSON對象或調用一個用於檢索/更新數據庫的php文件,模型的邏輯可能是負責解析,正則表達和組織內容的函數,因此可以交給它觀看?
查看:用戶界面和模型數據/內容的可視化表示。它唯一的工作是顯示內容並接受用戶輸入(如果適用)?
控制器:控制器也是唯一的工作是作爲模型和視圖之間的中介。例如,如果視圖需要數據,它會詢問控制器誰去模型獲取數據,然後將其發送回視圖?並且如果有任何用戶輸入,則視圖將其發送給控制器,然後控制器將其發送到模型,然後在該模型處更新控制器然後通知視圖模型已被更新?
對於我來說,MVC一直是一個混淆點,加上它已經聲明MVC不是JavaScript中自然而然的事情(至少不像在php,java,actionscript等中)。 )
嘗試從Javascript中查看MVC旁白,閱讀一些關於它的理論。然後,您可以使用您選擇的任何語言應用這些方法。 – TJHeuvel 2012-04-18 15:09:49
我還沒有在JavaScript中從頭開始看到MVC的純MVC實現。 TodoMVC中的vanilla js實現絕對不是真正的MVC,儘管它具有不同層次的分離。看到我的評論接受的答案。 Head First Design Patterns的插圖可能有所幫助:http://codereview.stackexchange.com/questions/42353/is-the-vanilla-implementation-of-todomvc-really-an-mvc-app – oligofren 2014-02-25 14:31:43
缺乏從頭開始真正的mvc是涉及到的樣板代碼的數量。香草TodoMVC應用程序是900多行的JS,但缺少必要的部分是真正的MVC。 「羊」的答案解釋了爲什麼這不一定是壞事;) – oligofren 2014-02-25 14:33:40