面试官:react和vue有什么区别吗?
前言
大家好呀,清明節(jié)這兩天有沒有出門踏青掃墓呢!!!
言歸正傳,這是作者面試系列的第二篇文章!!!!!!!
react和vue是什么?有啥區(qū)別嗎?
三大框架之二,大家應(yīng)該都不會(huì)陌生,都有學(xué)習(xí)過或者開發(fā)中使用。
但是他們到底有啥區(qū)別呢?這個(gè)就是我們這篇文章所需探討并學(xué)習(xí)的。
開始!
MVC 和 MVVM
首先,來說明下這些字母代表的含義
- M:Model 模型
- V:View 視圖
- C:Controller 控制器
- VM:ViewModel 視圖模型
首先說下MVC,大家肯定也知道三大框架中的另外一個(gè)(anuglar)。
如果你寫過angular那就肯定能很清楚的了解這個(gè)含義,看如下代碼:
<input ng-model="ball.basketball" />.contronller('BallController', ($scope) => {const ball = {basketball: '我是蔡徐坤'}$scope.ball = ball }) 復(fù)制代碼input標(biāo)簽很好理解,就是MVC中的V(view)視圖。
controller顧名思義,就是MVC中的C(controller)控制器。
ball的話就是MVC中的M(model)模型。
MVC的概念很簡(jiǎn)單,你要展示一個(gè)籃球的頁面。
看起來MVC的概念很舒服,框架的很規(guī)范,但是代碼量多了之后,就會(huì)顯得整個(gè)項(xiàng)目很臃腫,一點(diǎn)都不靈活。
作者有幸維護(hù)過一個(gè)稱為“屎山”的angular1.x項(xiàng)目,因?yàn)榻?jīng)過上百次(大概有)的需求迭代后,每個(gè)controller的代碼超過2000行,每次修bug和寫新需求,都需要維護(hù)很多方方面面的東西。
然后我們來了解下MVVM。
<input v-model="ball.basketball" /> let vm = new Vue({data: {ball: {baskertball: '蔡徐坤就是我'}} }) 復(fù)制代碼- M:Model 模型
- V:View 視圖
- VM: ViewModel 視圖模型
其實(shí)看代碼就理解了,vm其實(shí)就是vue對(duì)象。它的功能就是綁定到view上,Model里的籃球不管更新,還是做其他操作,都會(huì)通過vm來通知派發(fā)至view。
這樣做的好處呢,第一點(diǎn),一個(gè)業(yè)務(wù)邏輯你就不用寫很多遍。類似一個(gè)shopcart的功能,你把它的封裝成一個(gè)組件(ViewModel)在很多地方都可以直接引入調(diào)用。
跑題了
寫著寫著作者就覺得跑題了,其實(shí)vue和react都是借鑒了mvvm的概念思想,加上工程師自己的想法而出現(xiàn)的兩個(gè)優(yōu)秀框架。
他們的區(qū)別:
react和vue有什么區(qū)別嗎?你可以這樣說!
例如作者自己對(duì)這個(gè)問題的解答如下:
好了這篇需要講的東西已經(jīng)結(jié)束了。
這是第二篇關(guān)于框架優(yōu)勢(shì)的一篇文章。
面試系列第一篇: 面試官:你知道Callback Hell(回調(diào)地獄)嗎?
如果您有收獲或者疑問請(qǐng)?jiān)谙路皆u(píng)論,求贊!謝謝觀看到這里。
轉(zhuǎn)載于:https://juejin.im/post/5ca6fd2f6fb9a05e643def4f
總結(jié)
以上是生活随笔為你收集整理的面试官:react和vue有什么区别吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「实战篇」开源项目docker化运维部署
- 下一篇: 整理前端工作中的可复用代码(二):拓展s