Vue.js是一個(gè) 基于MVVM構(gòu)建用戶界面的漸進(jìn)式框架严望,Vue 采用自底向上增量開(kāi)發(fā)的設(shè)計(jì)多艇。 Vue.js 支持所有兼容 ECMAScript 5 的瀏覽器。
筆者剛剛?cè)鏥ue一周吧
對(duì)于MVVM的解釋:Model View ViewModel
Model:數(shù)據(jù)模型像吻,含有大量信息但不具備任何邏輯行為峻黍,數(shù)據(jù)的改變并不影響展示复隆。
View:在MVC中View是被動(dòng)由Controller控制的,而在MVVM中View是主動(dòng)的姆涩,包括數(shù)據(jù)綁定挽拂,事件,行為骨饿。不但負(fù)責(zé)展示亏栈,而且負(fù)責(zé)將自身變化同步到ViewModel中。
ViewModel:負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)換具有一定的邏輯宏赘,負(fù)責(zé)將Model的改變反應(yīng)到View上绒北,同時(shí)View改變時(shí)同步更改Model。
優(yōu)點(diǎn):
UI與邏輯分離【其實(shí)MV*應(yīng)該都具備的優(yōu)點(diǎn)】
數(shù)據(jù)綁定對(duì)于前端人員使用更少的代碼將數(shù)據(jù)展現(xiàn)到界面上
測(cè)試方便察署,只需測(cè)試ViewModel(由于沒(méi)有做過(guò)測(cè)試此點(diǎn)筆者還未證實(shí))
缺點(diǎn):
在View中添加了大量的數(shù)據(jù)綁定镇饮,導(dǎo)致View的復(fù)用性降低
數(shù)據(jù)綁定使一些Bug很難調(diào)試,定位困難
當(dāng)大型項(xiàng)目時(shí)ViewModel也會(huì)隨之越來(lái)越復(fù)雜(筆者參與Vue的項(xiàng)目在每個(gè)模版中ViewModel的復(fù)雜度還未表現(xiàn)出缺點(diǎn)箕母,個(gè)人認(rèn)為只要將整體組件化,每個(gè)組件針對(duì)不同的ViewModel俱济,其實(shí)不會(huì)太復(fù)雜)
漸進(jìn)式:https://www.zhihu.com/question/51907207?rf=55052497
綜合知乎上大師的講解嘶是,筆者在此概述一下:所謂漸進(jìn)式,其實(shí)是讓新上手的用戶(譬如筆者)可以快速進(jìn)入寫(xiě)代碼的行列蛛碌,當(dāng)然這只是一個(gè)初步聂喇,在寫(xiě)代碼的過(guò)程中逐漸的增加對(duì)vue的理解和其api的了解和使用。筆者了解過(guò)AngularJS蔚携,但并沒(méi)有真正入過(guò)項(xiàng)目希太,所以沒(méi)有辦法去證實(shí)所謂的強(qiáng)主張,當(dāng)然排他性我是有所體驗(yàn)的酝蜒。Vue就相當(dāng)于一個(gè)拎包入住的房間誊辉,當(dāng)你后來(lái)需要完善時(shí)在自行添加就好,不像是一個(gè)毛坯房需要一開(kāi)始先完善很多東西才能滿足基礎(chǔ)需要亡脑。