這篇“react不是mvvm框架的原因是什么”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“react不是mvvm框架的原因是什么”文章吧。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),姑蘇企業(yè)網(wǎng)站建設(shè),姑蘇品牌網(wǎng)站建設(shè),網(wǎng)站定制,姑蘇網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,姑蘇網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
因為react是單向數(shù)據(jù)綁定的,而mvvm最顯著的特征就是數(shù)據(jù)雙向綁定;mvvm框架是要有一個vm對象,來映射view,而react沒有純粹意義上的vm對象,有的是屬性和狀態(tài),所以react不是mvvm框架。
本教程操作環(huán)境:Windows10系統(tǒng)、react17.0.1版、Dell G3電腦。
mvvm
首先搞明白mvvm是啥意思。vm是view mode的意思。
所以mvvm框架是要有一個vm對象,來映射view。
也就是vm對象的屬性發(fā)生改變的時候,對應(yīng)的視圖部分會相對應(yīng)更新。比較經(jīng)典的有knockoutjs,里面比較關(guān)鍵的概念就是view model,compute,view模板等。對的,vue中其實是有不少它的影子。
react
然后來看看react,它沒有純粹意義上的vm對象,它有的是屬性和狀態(tài)。
用屬性和狀態(tài)去映射視圖。那么屬性和狀態(tài)和vm有什么區(qū)別呢?個人認為,vm對象不管你值是從外部傳進來的還是自己內(nèi)部定義的,最后都一視同仁。很多情況還有雙向綁定的機制,可能早期的flex,讓人感到驚艷吧,后面的mvvm框架都有雙向綁定的概念。而react,強調(diào)的是屬性不可變性,單向數(shù)據(jù)流。內(nèi)部的狀態(tài)內(nèi)部自己控制。
這樣的設(shè)計可能從設(shè)計上更復(fù)雜一些,但是從使用上變得更確定,更清晰了。如果react用的比較熟,給合適的組件管理合適的狀態(tài),做好狀態(tài)的合理分層,會大大降低應(yīng)用復(fù)雜度。然后,redux有個很先進的概念叫容器組件和純展示組件,如果領(lǐng)悟了這個設(shè)計思路的話,把復(fù)雜的東西集中到少部分組件中,大部分組件就變成純展示組件,進一步降低應(yīng)用復(fù)雜性。
MVVM一個最顯著的特征:雙向綁定。
React沒有這個,它是單向數(shù)據(jù)綁定的。
React是一個單向數(shù)據(jù)流的庫,狀態(tài)驅(qū)動視圖。
State --> View --> New State --> New View
以上就是關(guān)于“react不是mvvm框架的原因是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。