mvc/mvvm "阮大神博客" mvc 分為三層,其實M層是數據模型層,它是真正的後端數據在前端js中的一個映射模型,他們的關係是:數據模型層和視圖層有映射關係,model改變,view展示也會更改,當view產生用戶操作或會反饋給controller,controller更改model,這個時候 ...
mvc/mvvm
mvc 分為三層,其實M層是數據模型層,它是真正的後端數據在前端js中的一個映射模型,他們的關係是:數據模型層和視圖層有映射關係,model改變,view展示也會更改,當view產生用戶操作或會反饋給controller,controller更改model,這個時候view又會進行新的數據渲染
這是純純的MVC的模式,但是很多框架都會有一些更改
前端mvc框架,如angularjs,backbone:
會發現,用戶可以直接操作controller(例如用戶更改hash值,conrtoller直接監聽hash值變化後執行邏輯代碼,然後通知model更改)
控制器可以直接操作view,如果,讓某一個標簽獲得進入頁面獲得焦點,不需要model來控制,所以一般會直接操作(angularJS,指令)
view可以直接操作model (數據雙向綁定)
MVP:
view和model不能直接通信,所有的交互都由presenter來做,其他部分的通信都是雙向的
view較薄 ,presenter較為厚重
MVVM:
MVVM和MVP及其相似,只是view和viewmodel的通信是雙向綁定,view的操作會自動的向viewmodel通知