react不是mvvm框架。 mvvm框架需要有一個vm對象來映射view,也也就是vm對象的屬性改變的時候,對應的視圖部分會相對應更新;而react中並沒有vm對象,有的是屬性和狀態,整體可作為View使用,所以react不是mvvm框架。
本教學操作環境:Windows10系統、react17.0.1版、Dell G3電腦。
#react是不是mvvm架構
vm是view mode的意思。
所以mvvm框架是要有一個vm對象,來映射view。也就是vm物件的屬性改變的時候,對應的視圖部分會相對應更新。
比較經典的有knockoutjs,裡面比較關鍵的概念就是view model,compute,view模板等。對的,vue中其實有不少它的影子。
然後來看看react,它沒有純粹意義上的vm對象,它有的是屬性和狀態。
React可以作為MVVM中第二個V,也就是View,但並不是MVVM框架。
MVVM一個最顯著的特徵:雙向綁定。
React沒有這個,它是單向資料綁定的。
React是一個單向資料流的函式庫,狀態驅動視圖。
react整體是函數式的思想,把元件設計成純元件,狀態和邏輯透過參數傳入,所以在react中,是單向資料流,推崇結合immutable來實現資料不可變。
然後來看看react,它沒有純粹意義上的vm對象,它有的是屬性和狀態。用屬性和狀態去映射視圖。那麼屬性和狀態和vm有什麼差別呢?個人認為,vm物件不管你值是從外部傳進來的還是自己內部定義的,最後都一視同仁。很多情況也有雙向綁定的機制,可能早期的flex,讓人感到驚艷吧,後面的mvvm框架都有雙向綁定的概念。而react,強調的是屬性不可變性,單向資料流。
內部的狀態內部自己控制。這樣的設計可能從設計上更複雜一些,但是從使用上變得更確定,更清晰了。如果react用的比較熟,給予適當的元件管理適當的狀態,做好狀態的合理分層,會大幅降低應用複雜度。然後,redux有個很先進的概念叫容器組件和純展示組件,如果領悟了這個設計思路的話,把複雜的東西集中到少部分組件中,大部分組件就變成純展示組件,進一步降低應用複雜性。 推薦學習:《
react影片教學###》###以上是react是不是mvvm框架的詳細內容。更多資訊請關注PHP中文網其他相關文章!