原因:2016年11月23日 星期三 繼Angularjs項(xiàng)目(1)后接著總結(jié)開(kāi)發(fā)的經(jīng)驗(yàn)與遇到的問(wèn)題。
說(shuō)明:本記錄主要介紹bower
與MVC框架
本昏。
我的博客:http://minichao.me
Bower
Bower 是twitter
推出的一款包管理工具夺颤,基于nodejs的模塊化思想痢缎,把功能分散到各個(gè)模塊中,讓模塊和模塊之間存在聯(lián)系世澜,通過(guò) Bower 來(lái)管理模塊間的這種聯(lián)系独旷。
包管理工具一般有以下的功能:
- 1.注冊(cè)機(jī)制:每個(gè)包需要確定一個(gè)唯一的 ID 使得搜索和下載的時(shí)候能夠正確匹配,所以包管理工具需要維護(hù)注冊(cè)信息,可以依賴(lài)其他平臺(tái)势告。
- 2.文件存儲(chǔ):確定文件存放的位置蛇捌,下載的時(shí)候可以找到,當(dāng)然這個(gè)地址在網(wǎng)絡(luò)上是可訪問(wèn)的咱台。
- 3.上傳下載:這是工具的主要功能络拌,能提高包使用的便利性。比如想用 jquery 只需要 install 一下就可以了回溺,不用到處找下載春贸。上傳并不是必備的,根據(jù)文件存儲(chǔ)的位置而定遗遵,但需要有一定的機(jī)制保障萍恕。
- 4.依賴(lài)分析:這也是包管理工具主要解決的問(wèn)題之一,既然包之間是有聯(lián)系的车要,那么下載的時(shí)候就需要處理他們之間的依賴(lài)允粤。下載一個(gè)包的時(shí)候也需要下載依賴(lài)的包。
nodejs
是時(shí)下流行的javascript
運(yùn)行環(huán)境翼岁,而npm
就是其管理工具类垫,而bower是解決js依賴(lài)關(guān)系的包工具,比如需要引入某個(gè)模塊功能琅坡,只需bower install xx
即可自動(dòng)引入前置環(huán)境悉患。
-
這里為什么要提到bower呢,現(xiàn)在下圖是通過(guò)Netbeans建立的包含Angularjs Seed文件的項(xiàng)目文件圖:
- Ubuntu下Ctrl+H即可顯示隱藏文件榆俺,如圖中左側(cè)售躁,為.bowerrc文件,它的作用就是在這一級(jí)目錄下使用Bower時(shí)茴晋,bower下載的文件所要去的地址陪捷,右側(cè)的bower.json是記錄文件,這是angularjs-seed自動(dòng)生成的(也可以通過(guò)bower init在當(dāng)前目錄下生成)诺擅,當(dāng)工程發(fā)生位置變更時(shí)市袖,為了減少存儲(chǔ)負(fù)擔(dān),無(wú)需轉(zhuǎn)移依賴(lài)庫(kù)文件掀虎,只需在每次安裝依賴(lài)時(shí)
bower install --save xx
其中xx為要安裝的包凌盯,而在安裝后,就會(huì)自動(dòng)記錄到bower.json的dependencies中烹玉。 - 當(dāng)新建了Angularjs工程后驰怎,由于只是下載了angularjs-seed(包含bower.json),而并無(wú)包依賴(lài)文件二打,故在這一級(jí)目錄下命令行輸入
bower install
县忌,bower就會(huì)自動(dòng)從json文件中提取記錄,下載想要的對(duì)應(yīng)版本的依賴(lài)文件了。
MVC
- 上一節(jié)簡(jiǎn)單介紹了Angularjs的應(yīng)用引導(dǎo)症杏,依賴(lài)注入装获,以及路由,這里介紹Angualrjs與MVC厉颤。Apache Struts,Spring MVC和Zend Framework等MVC框架在過(guò)去多年中是Web開(kāi)發(fā)框架的領(lǐng)導(dǎo)者穴豫,對(duì)于這些框架,完全運(yùn)行在服務(wù)器中逼友,所有的功能精肃,例如數(shù)據(jù)庫(kù)、業(yè)務(wù)邏輯帜乞、現(xiàn)實(shí)邏輯和UI活動(dòng)都在服務(wù)器中完成司抱,因此要消耗服務(wù)器的內(nèi)存和資源,雖然這種設(shè)計(jì)適用于大多數(shù)情況黎烈,但是近年來(lái)移動(dòng)端的發(fā)展习柠,這種設(shè)計(jì)模式在移動(dòng)設(shè)備中是不可行的(原因自行查找,不再贅述)照棋,這里只介紹Angulajrs的MVC资溃,與上述框架不同的是,Angularjs的視圖必怜、模型肉拓、控制器等模塊都在web瀏覽器后频,或用戶(hù)的設(shè)備中運(yùn)行梳庆,解放了服務(wù)器,或者只讓服務(wù)器處理業(yè)務(wù)邏輯和數(shù)據(jù)存儲(chǔ)卑惜,極大的改善了用戶(hù)體驗(yàn)膏执。
Angulajrs的視圖(MVC中的V)
- 基本上只需要使用簡(jiǎn)單的HTML和CSS,很簡(jiǎn)單露久,不做介紹
Angularjs的模型(MVC中的M)
- Angularjs在$scope對(duì)象中存儲(chǔ)應(yīng)用的模型更米,附在DOM上,如果想獲取模型毫痕,可以使用賦給$scope對(duì)象的數(shù)據(jù)屬性征峦。
Angularjs的控制器(MVC中的C)
- 技術(shù)核心,controller消请,要講的太多栏笆,后文介紹。