溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

react不是mvvm框架的原因是什么

發(fā)布時(shí)間:2022-04-22 14:54:04 來(lái)源:億速云 閱讀:200 作者:iii 欄目:web開發(fā)

這篇“react不是mvvm框架的原因是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“react不是mvvm框架的原因是什么”文章吧。

因?yàn)閞eact是單向數(shù)據(jù)綁定的,而mvvm最顯著的特征就是數(shù)據(jù)雙向綁定;mvvm框架是要有一個(gè)vm對(duì)象,來(lái)映射view,而react沒(méi)有純粹意義上的vm對(duì)象,有的是屬性和狀態(tài),所以react不是mvvm框架。

本教程操作環(huán)境:Windows10系統(tǒng)、react17.0.1版、Dell G3電腦。

為什么react不是mvvm框架

mvvm

首先搞明白mvvm是啥意思。vm是view mode的意思。

所以mvvm框架是要有一個(gè)vm對(duì)象,來(lái)映射view。

也就是vm對(duì)象的屬性發(fā)生改變的時(shí)候,對(duì)應(yīng)的視圖部分會(huì)相對(duì)應(yīng)更新。比較經(jīng)典的有knockoutjs,里面比較關(guān)鍵的概念就是view model,compute,view模板等。對(duì)的,vue中其實(shí)是有不少它的影子。

react

然后來(lái)看看react,它沒(méi)有純粹意義上的vm對(duì)象,它有的是屬性和狀態(tài)。

用屬性和狀態(tài)去映射視圖。那么屬性和狀態(tài)和vm有什么區(qū)別呢?個(gè)人認(rèn)為,vm對(duì)象不管你值是從外部傳進(jìn)來(lái)的還是自己內(nèi)部定義的,最后都一視同仁。很多情況還有雙向綁定的機(jī)制,可能早期的flex,讓人感到驚艷吧,后面的mvvm框架都有雙向綁定的概念。而react,強(qiáng)調(diào)的是屬性不可變性,單向數(shù)據(jù)流。內(nèi)部的狀態(tài)內(nèi)部自己控制。

這樣的設(shè)計(jì)可能從設(shè)計(jì)上更復(fù)雜一些,但是從使用上變得更確定,更清晰了。如果react用的比較熟,給合適的組件管理合適的狀態(tài),做好狀態(tài)的合理分層,會(huì)大大降低應(yīng)用復(fù)雜度。然后,redux有個(gè)很先進(jìn)的概念叫容器組件和純展示組件,如果領(lǐng)悟了這個(gè)設(shè)計(jì)思路的話,把復(fù)雜的東西集中到少部分組件中,大部分組件就變成純展示組件,進(jìn)一步降低應(yīng)用復(fù)雜性。

MVVM一個(gè)最顯著的特征:雙向綁定。

React沒(méi)有這個(gè),它是單向數(shù)據(jù)綁定的。

React是一個(gè)單向數(shù)據(jù)流的庫(kù),狀態(tài)驅(qū)動(dòng)視圖。

State --> View --> New State --> New View

以上就是關(guān)于“react不是mvvm框架的原因是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI