国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MVC && MVVM

klinson / 948人閱讀

摘要:面向?qū)ο笫亲约航M裝電腦,硬件已生產(chǎn)完畢。面向過程吃狗屎面向?qū)ο蠊烦允捍_切的講是一種軟件設(shè)計規(guī)范,早在年的理念就已經(jīng)誕生。后期的維護成本會減少很多。減輕了開發(fā)人員的負(fù)擔(dān),也減少了操作邏輯導(dǎo)致業(yè)務(wù)邏輯混亂的可能性。

什么是MVC,什么是MVVM?

面向過程 --> 面向?qū)ο?--> MVC --> MV*

面向過程:

開發(fā)人員按照需求邏輯順序開發(fā)代碼邏輯,主要思維模式在于如何實現(xiàn)。先細(xì)節(jié),后整體。

面向?qū)ο螅?/b>

開發(fā)人員先思考整個需求該由誰(哪個對象)來實現(xiàn),整個需求就是由很多對象來完成,然后在對象的具體邏輯中依然還是面向過程。封裝+多態(tài)+繼承,先抽象,后具體。

面向過程與面向?qū)ο蟮膮^(qū)別:

就像是電腦,面向過程是自己生產(chǎn)電腦,包括電路板、零件等。面向?qū)ο笫亲约航M裝電腦,硬件已生產(chǎn)完畢。

面向過程: 吃 狗(屎); 面向?qū)ο螅?狗 吃(屎);

MVC:

確切的講MVC是一種軟件設(shè)計規(guī)范,早在1970年MVC的理念就已經(jīng)誕生。不過長期以來MVC都是應(yīng)用在重邏輯開發(fā)的軟件領(lǐng)域和互聯(lián)網(wǎng)產(chǎn)品的后臺開發(fā)領(lǐng)域。

開發(fā)人員按照Model(模型) - View(視圖) - Controller(控制器)相分離的邏輯進行需求開發(fā),將輸入(View)、處理(Controller)、輸出(Model -> View)獨立開,這種邏輯的好處在于,業(yè)務(wù)邏輯與用戶界面分離之后,后期對于界面的改版以及對于用戶交互的處理變化,僅僅需要改動View層即可,不在需要對業(yè)務(wù)邏輯層進行多大的改動。后期的維護成本會減少很多。

Model是需要渲染到頁面中的數(shù)據(jù)模型,View是用戶可以接觸到的的界面,Controller是業(yè)務(wù)邏輯控制

MVVM:

開發(fā)人員只要考慮和處理Model(數(shù)據(jù)模型)的變化即可,不用考慮Model和View之間的數(shù)據(jù)綁定同步,更不用花精力用大量的代碼獲取DOM元素改變DOM元素的值來完成界面數(shù)據(jù)的變化。所有工作交給VM(View-Model)來處理。

MVVM并沒有業(yè)務(wù)邏輯的控制器,它通過數(shù)據(jù)雙向綁定,實時更新View和Model層,當(dāng)數(shù)據(jù)模型發(fā)生變化的時候,用戶界面(DOM)的內(nèi)容會即時更新。反之如果用戶操作導(dǎo)致某些DOM內(nèi)容變化(如input),ViewModel也會即時的將Model數(shù)據(jù)模型更新。

實際上還有一種模式叫做MVP,P是Presenter,它與MVVM類似,但不是雙向綁定。

為什么MVC?

隨著互聯(lián)網(wǎng)產(chǎn)品前端業(yè)務(wù)邏輯的日趨復(fù)雜,JavaScript已經(jīng)從最初的僅僅實現(xiàn)頁面動態(tài)效果,隨著AJAX的誕生以及Google對于此技術(shù)的重視和推廣,現(xiàn)在的JavaScript演變成業(yè)務(wù)邏輯越來越復(fù)雜和繁重的角色,JavaScript也完美的向世人詮釋了什么才是真正的屌絲逆襲。隨著網(wǎng)站界面的復(fù)雜化,以及越來越多的互聯(lián)網(wǎng)產(chǎn)品都開始重視用戶的交互體驗,前端的業(yè)務(wù)邏輯和數(shù)據(jù)處理能力被更加重視,也正是隨著DOM操作邏輯與業(yè)務(wù)邏輯的混雜,導(dǎo)致項目代碼隨著時間的推移越來越多,越來越混雜,越來越難以維護。最早出現(xiàn)的MVC理念的JS框架便是幾年前進入前端領(lǐng)域的Backbone.js。MVC設(shè)計理念終于被應(yīng)用到的前端開發(fā)的領(lǐng)域。也正是因為前端MVC理念的普及,更多的人認(rèn)識到了前端開發(fā)工程師的價值已經(jīng)不只是過去那種只做表面功夫的"偽程序員"。前端開發(fā)工程師的春天才剛剛開始。

復(fù)雜的Web App
將開發(fā)重心從DOM操作,轉(zhuǎn)移到數(shù)據(jù)操作,將DOM操作與程序邏輯解耦。
期望提升開發(fā)效率、單位時間產(chǎn)出、后期代碼擴展性,降低維護成本

MVC另一種角度來說算是一個公司技術(shù)團隊的開發(fā)規(guī)范,只有規(guī)范的邏輯代碼,才能獲得敏捷開發(fā)的便捷和高效,也可以得到相較為規(guī)范的開發(fā)模式更好的代碼擴展性和可維護性。

為什么MVVM?

數(shù)據(jù)雙向綁定,開發(fā)人員不用再把精力放在DOM的修改和更新,只要通過模板引擎將數(shù)據(jù)模型和用戶界面綁定,框架會實時同步雙方數(shù)據(jù)的變化。減輕了開發(fā)人員的負(fù)擔(dān),也減少了DOM操作邏輯導(dǎo)致業(yè)務(wù)邏輯混亂的可能性。

為什么使用AngularJS

最早開始普及的前端MVC框架是Backbone,之后借鑒這種開發(fā)模式的框架如雨后春筍般進入開發(fā)者的視野。互聯(lián)網(wǎng)巨頭們也開始推出自己的MV*框架:
微軟 - Knockout.js - MVVM
Google - Angular.js - MVC & MVVM
蘋果 - Ember.js - MVC & MVVM
Facebook - React.js - MVVM

全棧工程師 -> MEAN解決方案

AngularJS既是MVC框架又是MVVM框架

之前有說到MVC模式就是一種開發(fā)規(guī)范,AngularJS這個MVC框架帶給我們的好處就是,他經(jīng)過了Google很多項目的考驗,我們使用AngularJS也可以算是使用Google成熟的開發(fā)規(guī)范來進行項目開發(fā)。AngularJS這個MVC框架實際上匯集了太多太多Google的優(yōu)秀理念和編程規(guī)范,這對于很多希望能統(tǒng)一開發(fā)規(guī)范的前端Team來說是很寶貴的。

AngularJS既是MVC框架又是MVVM框架

之前有說到MVC模式就是一種開發(fā)規(guī)范,AngularJS這個MVC框架帶給我們的好處就是,他經(jīng)過了Google很多項目的考驗,我們使用AngularJS也可以算是使用Google成熟的開發(fā)規(guī)范來進行項目開發(fā)。AngularJS這個MVC框架實際上匯集了太多太多Google的優(yōu)秀理念和編程規(guī)范,這對于很多希望能統(tǒng)一開發(fā)規(guī)范的前端Team來說是很寶貴的。

感謝彬大神的指導(dǎo)和整理。關(guān)于我,偽全棧工程師。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/78402.html

相關(guān)文章

  • Deep in JS - 收藏集 - 掘金

    摘要:今天同學(xué)去面試,做了兩道面試題全部做錯了,發(fā)過來給道典型的面試題前端掘金在界中,開發(fā)人員的需求量一直居高不下。 排序算法 -- JavaScript 標(biāo)準(zhǔn)參考教程(alpha) - 前端 - 掘金來自《JavaScript 標(biāo)準(zhǔn)參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現(xiàn) 選擇排序 簡介 算法實現(xiàn) ... 圖例詳解那道 setTimeout 與循環(huán)閉包的經(jīng)典面...

    enali 評論0 收藏0
  • VUE - MVVM - part13 - inject & 總結(jié)

    摘要:通過裝作這些變化,我們實現(xiàn)了從而到達了數(shù)據(jù)變化觸發(fā)函數(shù)的過程。于此同時,我們還實現(xiàn)了來擴展這個可響應(yīng)的結(jié)構(gòu),讓這個對象擁有了觸發(fā)和響應(yīng)事件的能力。最后,根據(jù)我們的實現(xiàn),這是最終的產(chǎn)出,一個框架,了解一下系列文章地址優(yōu)化優(yōu)化總結(jié) 看這篇之前,如果沒有看過之前的文章,移步拉到文章末尾查看之前的文章。 provide / inject 在上一步我們實現(xiàn)了,父子組件,和 props 一樣 pr...

    niuxiaowei111 評論0 收藏0
  • Vue源碼解析(二)-MVVM雙向綁定&&Watcher介紹

    摘要:前言上一遍文章介紹了模版渲染的實現(xiàn),這篇文章將繼續(xù)介紹雙向綁定的實現(xiàn)官網(wǎng)如下,當(dāng)。 前言 上一遍文章介紹了Vue模版渲染的實現(xiàn)(https://segmentfault.com/a/11...),這篇文章將繼續(xù)介紹雙向綁定的實現(xiàn) demo 官網(wǎng)demo如下,當(dāng)data。message的值變化,input的value值也會相應(yīng)的變化;當(dāng)用戶改變input框中的內(nèi)容時data.messag...

    miya 評論0 收藏0
  • 剖析Vue原理&實現(xiàn)雙向綁定MVVM

    摘要:所以無需太過介懷是實現(xiàn)的單向或雙向綁定。監(jiān)聽數(shù)據(jù)綁定更新函數(shù)的處理是在這個方法中,通過添加回調(diào)來接收數(shù)據(jù)變化的通知至此,一個簡單的就完成了,完整代碼。 本文能幫你做什么?1、了解vue的雙向數(shù)據(jù)綁定原理以及核心代碼模塊2、緩解好奇心的同時了解如何實現(xiàn)雙向綁定為了便于說明原理與實現(xiàn),本文相關(guān)代碼主要摘自vue源碼, 并進行了簡化改造,相對較簡陋,并未考慮到數(shù)組的處理、數(shù)據(jù)的循環(huán)依賴等,也...

    melody_lql 評論0 收藏0
  • angular,react & vue

    摘要:由進行開發(fā)和維護,代發(fā)布于年月,現(xiàn)在主要是。狀態(tài)是只讀的,只能通過來改變,以避免競爭條件這也有助于調(diào)試。文件大小為,而為,為。請記住,性能基準(zhǔn)只能作為考慮的附注,而不是作為判斷標(biāo)準(zhǔn)。使用的人員報告說,他們永遠不必閱讀庫的源代碼。 本文當(dāng)時寫在本地,發(fā)現(xiàn)換電腦很不是方便,在這里記錄下。 angular,react & vue 2018/07/23 2016年,對于JavaScript來說...

    jiekechoo 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<