您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“react是mvvm框架嗎”,內容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“react是mvvm框架嗎”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
react不是mvvm框架。mvvm框架需要有一個vm對象來映射view,也即vm對象的屬性發(fā)生改變的時候,對應的視圖部分會相對應更新;而react中并沒有vm對象,有的是屬性和狀態(tài),整體可作為View使用,所以react不是mvvm框架。
本教程操作環(huán)境:Windows10系統(tǒng)、react17.0.1版、Dell G3電腦。
react不是mvvm框架
首先搞明白mvvm是啥意思。vm是view mode的意思。
所以mvvm框架是要有一個vm對象,來映射view。也就是vm對象的屬性發(fā)生改變的時候,對應的視圖部分會相對應更新。
比較經(jīng)典的有knockoutjs,里面比較關鍵的概念就是view model,compute,view模板等。對的,vue中其實是有不少它的影子。
然后來看看react,它沒有純粹意義上的vm對象,它有的是屬性和狀態(tài)。
React可以作為MVVM中第二個V,也就是View,但是并不是MVVM框架。
MVVM一個最顯著的特征:雙向綁定。
React沒有這個,它是單向數(shù)據(jù)綁定的。
React是一個單向數(shù)據(jù)流的庫,狀態(tài)驅動視圖。
react整體是函數(shù)式的思想,把組件設計成純組件,狀態(tài)和邏輯通過參數(shù)傳入,所以在react中,是單向數(shù)據(jù)流,推崇結合immutable來實現(xiàn)數(shù)據(jù)不可變。
然后來看看react,它沒有純粹意義上的vm對象,它有的是屬性和狀態(tài)。用屬性和狀態(tài)去映射視圖。那么屬性和狀態(tài)和vm有什么區(qū)別呢?個人認為,vm對象不管你值是從外部傳進來的還是自己內部定義的,最后都一視同仁。很多情況還有雙向綁定的機制,可能早期的flex,讓人感到驚艷吧,后面的mvvm框架都有雙向綁定的概念。而react,強調的是屬性不可變性,單向數(shù)據(jù)流。
內部的狀態(tài)內部自己控制。這樣的設計可能從設計上更復雜一些,但是從使用上變得更確定,更清晰了。如果react用的比較熟,給合適的組件管理合適的狀態(tài),做好狀態(tài)的合理分層,會大大降低應用復雜度。然后,redux有個很先進的概念叫容器組件和純展示組件,如果領悟了這個設計思路的話,把復雜的東西集中到少部分組件中,大部分組件就變成純展示組件,進一步降低應用復雜性。
讀到這里,這篇“react是mvvm框架嗎”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。