你們好呀,清明節這兩天有沒有出門踏青掃墓呢!!!javascript
言歸正傳,這是做者面試系列的第二篇文章!!!!!!!vue
三大框架之二,你們應該都不會陌生,都有學習過或者開發中使用。java
可是他們到底有啥區別呢?這個就是咱們這篇文章所需探討並學習的。react
開始!面試
首先,來講明下這些字母表明的含義數組
首先說下MVC,你們確定也知道三大框架中的另一個(anuglar)。mvc
若是你寫過angular那就確定能很清楚的瞭解這個含義,看以下代碼:框架
<input ng-model="ball.basketball" />
.contronller('BallController', ($scope) => {
const ball = {
basketball: '我是蔡徐坤'
}
$scope.ball = ball
})
複製代碼
input標籤很好理解,就是MVC中的V(view)視圖。dom
controller顧名思義,就是MVC中的C(controller)控制器。mvvm
ball的話就是MVC中的M(model)模型。
MVC的概念很簡單,你要展現一個籃球的頁面。
- 設置一個籃球的模型放在那等待使用。
- 寫一個你須要展現籃球的視圖。
- 使用控制器來讓模型和視圖交互。
看起來MVC的概念很舒服,框架的很規範,可是代碼量多了以後,就會顯得整個項目很臃腫,一點都不靈活。
做者有幸維護過一個稱爲「屎山」的angular1.x項目,由於通過上百次(大概有)的需求迭代後,每一個controller的代碼超過2000行,每次修bug和寫新需求,都須要維護不少方方面面的東西。
<input v-model="ball.basketball" />
let vm = new Vue({
data: {
ball: {
baskertball: '蔡徐坤就是我'
}
}
})
複製代碼
其實看代碼就理解了,vm其實就是vue對象。它的功能就是綁定到view上,Model裏的籃球無論更新,仍是作其餘操做,都會經過vm來通知派發至view。
這樣作的好處呢,第一點,一個業務邏輯你就不用寫不少遍。相似一個shopcart的功能,你把它的封裝成一個組件(ViewModel)在不少地方均可以直接引入調用。
寫着寫着做者就以爲跑題了,其實vue和react都是借鑑了mvvm的概念思想,加上工程師本身的想法而出現的兩個優秀框架。
他們的區別:
面試系列第一篇: 面試官:你知道Callback Hell(回調地獄)嗎?