react自身的context,方法/事件也可以看成C啊,state/props也可以看成M啊


因為單純的 react 本質就是一個 render 函數。入參是 state,也就是 model,出參是 html,也就是渲染結果交給瀏覽器。這也是為什麼 react 會和函數式,以及不可變數據結構扯上關係的原因。

一個用於 render 的函數,劃分為 v 是沒錯的吧。

state 也就是 model 應該包含在 react 中嗎?私以為是不包含的,因為那是入參,是使用者提供的,react 對 model 並沒有任何操作,你每一次狀態更新的時候,在其看來都是一個「新的」state,然後返回一個「新的」結果。

反觀 vue,內部也有 state,但是並不是作為入參而是作為 vue 組件的一部分,因為只有內部的這個 state 是和 view 綁定的,對這個 state 進行修改的時候會同步修改對應的那一部分 view。

至於 c ,你說我這麼一個函數式設計思路的庫,追求的就是無狀態無副作用,被欽點為 c 是不是有點說不過去。


不知道這個問題下有沒有熟悉Java伺服器端的。

可以提出一個類似的問題:為什麼JSP屬於MVC中的V?JSP自身可以寫業務邏輯看成C,也可以直接連接資料庫看成M。什麼Struts Spring MVC統統可以不用啦。

前端類似的也有Angular,Angular是一個MVC。但是完全可以只用Component搞定,不需要寫Service。

只是說,MVC框架,為了達到分層的目的,讓程序結構看起來更清晰,更以維護。如果把邏輯都寫在表現層V,簡單的應用還可以,規模上去以後就不可取了。


這種定義是相對的 往大的說在一個項目中可能這個框架只扮演 V 的角色 對他自己內部邏輯而言他本身也是個 MVC


先問是不是,再問為什麼。

react應該本身就是一個mvc的框架,本身就可以完成mvc的邏輯。

而且mvc的分工是相對的,不是絕對的,如果有人就把react只當個模板工具用,那它就是v了


原回答有誤。已刪


你都沒有數據源邏輯源,拿什麼M拿什麼C,給你一個顯示屏,沒有主機放什麼動畫片呢?哪怕你這是觸控一體顯示屏,只要不是一體機,沒有來源的,就不是一個整體。

哦,再加一個,最不喜歡問問題帶什麼啊,什麼啊的選手。

歡迎反對加沒有幫助。


推薦閱讀:
相关文章