什麼是MVC?

Being Wu
Being

--

MVC 一種軟體架構模式,把系統分成三個種核心,分別為: Model, View, Controller。它的設計概念是以關注點分離(seperation of concerns, SOC)為基礎,將應用程式拆解成不同的功能面向,各自處理負責事項,強調團隊分工的概念。

這三個套用在 Web 分別為前端 HTML+CSS (View),後端 API 資料庫(Model),控制後端資料庫的接口 JavaScript (Controller)

  • Model:後端資料庫進行運作
  • View:前端畫面與邏輯顯示
  • Controller:處理控制流程和回應,以路由以傳遞資料為主

Controller 控制器 — 事件層

Controller 是整個運作過程中的核心,掌握與瀏覽器之間的互動行為,也負責收發 Request 與 Response,因此,通常會在 Controller 設置不同的事件 Event,進而觸發不同指令完成後續動作。

例如:當 Controller 收到請求後,Controller 會通知 Model 調度資料,接著再把資料傳遞給 View 來產生樣板,最終將呈現資料的 HTML 頁面回傳到客戶端的瀏覽器。

Model 模型 — 邏輯層

Model 主要管理與資料邏輯有關的事項,若使用者想要對資料進行「新增、修改、刪除、瀏覽」的動作,都需要透過 Model 中的 JavaScript 來操作,如電商網站的免運費、計算訂單總額…等等。

View 視圖 — 表現層

View 主要管理第一線與使用者互動的介面,也就是 HTML 樣板,若是動態網站,他則會依照 Model 取出的資料內容,動態呈現使用者需要的網頁內容。

讀後思考:

  1. MVC與API差異?

MVC是個架構,之下可透過RESTful API 進行資料存取、方便管理路由及API

2. React 是MVC架構嗎?

react 應該是只有V,因為到資料庫存取資料仍是透過node.js。

3. 但是加入了Redux應該也可以算是MVC架構?

React扮演的是View的角色,Redux則是Controller,至於Model就是Redux Store中儲存的State。

4. node.js express框架比較符合MVC?

client透過路由發送請求controller,路由到資料庫拿資料model,將資料output 到views ejs 樣板選染畫面給client。

參考資料:

video:

--

--

Being Wu
Being
Editor for

Passion for Coding, Reading, Experience Life 💛 Collects Small Things I Learned Day to Day.