想要理解這些概念最好是本身動手擼一個出來(感謝方方老師) 因此咱們先要從最開始的意大利麪條式的代碼一步一步過渡到MVC在到Vue 需求能夠書籍的數量和名字進行計算和綁定html
1.這種代碼適用於2008年前那個jq統治天下的時間前端
換句或說 若是你還在寫這種代碼 這說明你 out 了vue
2.下一步咱們將會對這種老代碼進行MVC封裝git
2.咱們先從MVC模式這個概念的歷史開始,MVC模式最先是起於smalltalk語言(據我瞭解)github
後來漸漸被後臺語言所應用與構建後臺語言的架構好比ThinkPHP,SpringMVC,等等 爲何會出現MVC模式呢設計模式
是由於一開始的意大利麪條式代碼乍看起來沒有問題,可是一旦時間久了以後,這種代碼想要維護和更新就像是在屎堆裏面查找一快特定形狀的屎,對開發人員的三觀和頭髮是一種極大的挑戰(亞馬遜開發人員也有類似言論)api
因此一些聰明的工程師在想爲何咱們不把這些類似的代碼套路總結一下造成業內的潛規則呢,因而各類設計模式就這樣出現了今天咱們就從MVC開始提及(因此說前端的MVC模式就是從後臺語言借鑑的)。
3. 下面 咱們介紹一下MVC究竟是表明了什麼
M(Model)專門負責數據(好比前端從api接口獲取到了數據)
V(View)專門負責表現(好比把梳理過的數據添加到HTML上)
C(Controller)負責其餘邏輯(好比處理數據)
若是咱們來反思一下,會發現這個分類是無懈可擊的:
每一個網頁都有數據 每一個網頁都有表現(具體爲 HTML) 每一個網頁都有其餘邏輯 因而乎,MVC 成了經久不衰的設計模式
4. 如今咱們改進一下列子讓她MVC起來 哈哈哈bash
this[event.fnName].bind(this)
//做用是傳遞this 肯定this是let controller
複製代碼
1.爲何要用類或者也能夠換成原型那是由於若是有n個頁面須要按照上面那個代碼其實要重複n次併發
若是寫成類那麼new一下就能夠啦
2.若是咱們的例子裏面有input並對根據input裏面的數值進行計算的話 .html()這樣就會把input
裏面的數值覆蓋掉除非咱們把數字記錄到JS的data中進行儲存(雙向綁定初步思想)就這樣出來了
3. 而虛擬DOM則是換了一種思想那就是我只改變有關於數字的部分DOM,先生成即將改變的DOM對象而後替換掉文檔中的DOM(這樣就是虛擬DOM的初步思想)
4.Angular 就是基於雙向綁定而發明的,而 React 則是基於虛擬DOM思想。
5.如今咱們用Vue來替代代碼中的View
Vue 的雙向綁定(也是 Angular 的雙向綁定)有這些功能:
固然Vue確定不是這麼簡單的裏面有不少的技術點在裏面 這僅僅是一個入門歸納詳細的我會再進行研究併發布的 請你們給我點個贊啊啊啊!!!