沒(méi)從C++/Java學(xué)起,對(duì)MVC和面向?qū)ο蟮睦斫膺€是后來(lái)慢慢積累起來(lái)的相對(duì)我覺(jué)得腳本語(yǔ)言各種范式各種靈活,只是缺少面向?qū)ο蠼M織代碼的整齊呆板而且從前使用DOMAPI時(shí)候就覺(jué)得DOM就像一種數(shù)據(jù)類(lèi)型,JS操作數(shù)據(jù)同時(shí),也在更改界面.通過(guò)直接訪(fǎng)問(wèn)界面,也能讀取數(shù)據(jù),很強(qiáng)大對(duì)吧但我接觸Backbone一段時(shí)間,困惑也覺(jué)得越來(lái)越多而從前靈活解決前端問(wèn)題的思路,隨著MVC提出的分離有了各種阻礙,或者不方便直接JSDOM操作吧MVC在Backbone里是Model和View-Controller兩者分離,另加上Collection.每次Model(Collection)發(fā)生改變,View重新渲染一次,然后搞定或者DOM上的事件從Controller傳到Model里進(jìn)行一次改變,View跟著改變好這樣其實(shí)jQuery豐富的DOM操作就顯得無(wú)所用處如果在Backbone的應(yīng)用里加上大量的DOM操作,View刷新時(shí)又變得尷尬為了性能,JS在進(jìn)行DOM操作時(shí)會(huì)講操作全在HTML字符串里存儲(chǔ)好,一次寫(xiě)入可在Backbone里,如果小的item也是Model,那么render也是分開(kāi)了自己做的我理解,這樣兩者就不能夠很好地兼容,至少有一個(gè)方面要打折扣了另一個(gè)功能是實(shí)時(shí)保存和更新,純的DOM操作,JS監(jiān)聽(tīng)DOM,在背后保存數(shù)據(jù)很簡(jiǎn)單可在MVC里Model被監(jiān)聽(tīng),每次更新操作就會(huì)導(dǎo)致界面被重新繪制,也顯得很怪
對(duì)于前端 MVC 來(lái)說(shuō), DOM API 是否是過(guò)度封裝了?
慕容708150
2019-04-06 16:57:40