框架是一個軟件的半成品,在全局范圍內給了大的約束。庫是工具,在單點上給我們提供功能??蚣苁且蕾噹斓摹ngularJS是框架而jQuery則是庫。
1.2、AMD與CMD
在傳統(tǒng)的非模塊化JavaScript開發(fā)中有許多問題:命名沖突、文件依賴、跨環(huán)境共享模塊、性能優(yōu)化、職責單一、模塊的版本管理、jQuery等前端庫層出不窮,前端代碼日益膨脹
AMD規(guī)范及其代表:RequireJS
異步模塊定義(Asynchronous Module Definition),它是依賴前置 (因為依賴必須一開始就寫好)會先盡早地執(zhí)行(依賴)模塊 , 相當于所有的require都被提前了
CMD規(guī)范及其代表:SeaJS
(Common Module Definition)模塊定義規(guī)范
一個模塊就是一個文件;它推崇依賴就近想什么時候require就什么時候加載,實現(xiàn)了 懶加載, 延遲執(zhí)行 (as lazy as possible)
1.2、前端MVC概要
MVC的核心理念是:你應該把管理數(shù)據(jù)的代碼(Model)、業(yè)務邏輯的代碼(Controller)、以及向用戶展示數(shù)據(jù)的代碼(View)清晰的分離開
模型:代表應用當前的狀態(tài)
視圖:用于展示數(shù)據(jù),用于接口
控制器:用來管理模型和視圖之間的關系