一泡挺、Angular
參考AngularJS百度百科
AngularJS誕生于2009年辈讶,由Misko Hevery 等人創(chuàng)建,后為Google所收購粘衬。是一款優(yōu)秀的前端JS框架荞估,已經(jīng)被用于Google的多款產(chǎn)品當中。AngularJS有著諸多特性稚新,最為核心的是:MVC勘伺、模塊化、自動化雙向數(shù)據(jù)綁定褂删、語義化標簽飞醉、依賴注入等等。
參考AngularJS 于前端開發(fā)有什么作用屯阀,對比其它框架有何優(yōu)點
未來的發(fā)展趨勢是前端后端只靠json數(shù)據(jù)來進行通信:后端只處理和發(fā)送一段json數(shù)據(jù)到前端缅帘,然后計算和模板渲染都在前端進行。而前端的改動后难衰,形成json數(shù)據(jù)然后傳回到后端钦无。
未來趨勢就是:后臺程序再也不做模板的任何處理
AngularJS 的作用簡單說就是就是把后臺的json值直接用html進行渲染,然后html的操作又直接在形成json傳回后臺盖袭。未來的后臺MVC失暂,試圖不再是模板了,而是一段結(jié)構(gòu)整齊標準的JSON鳄虱,而這個JSON作為前臺的model直接在AngularJS直接使用弟塞。或者說后臺的試圖是前臺的模型拙已,而整個前臺就是后臺的視圖决记。后臺程序再也不做模板的任何處理了。Angular是框架的一種倍踪,不學也能開發(fā)前端系宫。學backbone或者ember也能開發(fā)前端索昂。沒有js的mvc,就光弄個jquery笙瑟,也能開發(fā)前端楼镐。
- Angular 是一個完整的框架
- Angular 的核心團隊默認在文檔中使用 TypeScript。這意味著相關(guān)的示例應(yīng)用和開源項目更有可能保持一致性往枷。
- Angular 還擁抱了裝飾器(decorator)而不是繼承(extends)——很多人認為這也是個加分項
- Angular 2 還擁抱了 Web Component 標準框产。固然 Web Components 的瀏覽器支持度依然很弱,但長期來看错洁,對 Web Components 友好是很大的優(yōu)勢秉宿。
二、React
JSX 是一種類似 HTML 的語法屯碴,但它實際上會被編譯成 JavaScript描睦。將標簽與代碼混寫在同一個文件中意味著輸入一個組件的函數(shù)或者變量時你將享受到自動補全的福利。JSX 編譯器會指出你手抖的具體行號导而,徹徹底底加速你的開發(fā)忱叭。相反,當你在 Angular 2 中不小心敲錯了一個變量時今艺,鴉雀無聲韵丑。Angular 2 并不會在編譯時做什么,它會等到運行時才靜默報錯虚缎。它報錯得如此之慢撵彻,我加載完整個應(yīng)用然后奇怪為什么我的數(shù)據(jù)沒有顯示出來呢?這太不爽了实牡。
React 以 JavaScript 為中心
終于來了陌僵。這才是 React 和 Angular 的根本區(qū)別。很不幸创坞,Angular 2 仍然是以 HTML 而非 JavaScript 為中心的碗短。Angular 2 并沒有解決它設(shè)計上的根本問題:Angular 2 繼續(xù)把 “JS” 放到 HTML 里。React 則把 “HTML” 放到 JS 里题涨。這種分歧帶來的影響真是再怎么強調(diào)也不為過豪椿。它們從根本上影響著開發(fā)體驗。Angular 以 HTML 為中心的設(shè)計留下了巨大的缺陷携栋。正如我在 JSX:硬幣的另一面 中所說的,JavaScript 遠比 HTML 要強大咳秉。因此婉支,增強 JavaScript 讓其支持標簽要比增強 HTML 讓其支持邏輯要合理得多。無論如何澜建,HTML 與 JavaScript 都需要某種方式以粘合在一起向挖。React 以 JavaScript 為中心的思路從根本上優(yōu)于 Angular蝌以、Ember、Knockout 這些以 HTML 為中心的思路何之。
我們不妨品味下當今流行的 JS 框架/庫都是如何實現(xiàn)遍歷的:
Ember: {{# each}}
Angular 1: ng-repeat
Angular 2: ngFor
Knockout: data-bind="foreach"
React: 直接用 JS 就好啦 :)
除了 React跟畅,所有其它框架都用自己的專有語法重新發(fā)明了一個我們在 JavaScript 常見得不能再常見的東西:循環(huán)。這大概就是 React 的美妙之處溶推,利用 JavaScript 的力量來處理標簽徊件,而不是什么奇怪的新語法。
- React 是一個類庫蒜危。它的哲學與 Angular虱痕、Ember 這些大而全的框架恰恰相反。你可以根據(jù)場景挑選各種時髦的類庫辐赞,搭配出你的最佳組合部翘。JavaScript 世界在飛速發(fā)展,React 允許你不斷用更好的類庫去迭代你應(yīng)用中的每個小部分响委,而不是傻等著你選擇的框架自己升級新思。
三、Angular React對比
參考2014 年末有哪些比較火的 Web 開發(fā)技術(shù)赘风?
我解釋一下為什么Angular能夠這么火夹囚,它主要解決的是哪個層面的問題呢?它解決的是快速開發(fā)的問題贝次。我們知道崔兴,有很多b/s化的產(chǎn)品,其本質(zhì)還是像c/s蛔翅,只是把這個c做到瀏覽器里來了敲茄,這樣的一些系統(tǒng),它免不了要在瀏覽器中寫大量js山析,然后使用某種ui框架堰燎,它的協(xié)同開發(fā)人員數(shù)量會相對較大,代碼量也會很多笋轨,在這類系統(tǒng)的開發(fā)過程中秆剪,從成本的角度要解決兩個問題:
怎樣讓開發(fā)過程盡量快?
怎樣讓變更成本盡量芯粽仅讽?
解決這兩個問題的辦法是組件化。所謂組件化钾挟,在傳統(tǒng)軟件領(lǐng)域可能會有一些成熟方案洁灵,但是拿到Web,尤其Web前端這個層面掺出,基本沒有一種通用方案徽千。組件化并不僅僅要解決“控件”這個層面的問題苫费,還需要把業(yè)務(wù)數(shù)據(jù)和邏輯也做規(guī)約,理清他們之間的關(guān)系双抽,而Angular“碰巧”在這個方面很有幫助百框,它把UI和業(yè)務(wù)邏輯隔離得干干凈凈,模塊之間使用依賴注入來維系關(guān)系牍汹,易測試铐维,可復用,作為架構(gòu)師柑贞,也可以比較容易地對整個項目有所把控方椎。
我們看到很多人跟風學Angular,有很大一部分并未抓住其實質(zhì)钧嘶,而是被一些邊角優(yōu)勢所吸引棠众,因此用的過程中各種痛苦,如果能夠先認識到它的本質(zhì)優(yōu)點所在有决,并且認識到它確實適合自己的項目闸拿,一定能得心應(yīng)手,左右逢源书幕。
為什么很多人被React吸引呢新荤,因為他從另外一個層面解決組件化的問題,而這種方式可能對前端來說更友好台汇,而且還能夠在服務(wù)端解析模板苛骨。喜歡React的人常常用它的虛擬DOM、精確更新來打擊其他框架苟呐,誠然痒芝,它在這方面做得非常好,但并未高到影響全局的程度牵素。這是什么意思呢严衬,它是一個主要針對DOM組件的庫,如果用于完整的大型產(chǎn)品解決方案笆呆,還是有所欠缺的请琳,它的優(yōu)勢集中在上層,但其實從宏觀角度看赠幕,這一層的效率并沒有那么重要俄精,比如說你是一架很精巧的挖掘機,自帶各種分揀功能榕堰,但很多時候嘀倒,大家是很粗暴地去挖東西,就像挖煤那樣,你在細節(jié)上有多么高效并不重要测蘑,只有在一些需要精確控制的場景下,優(yōu)勢才能發(fā)揮出來康二。況且碳胳,當Web Components出來之后,虛擬DOM是有很多沒法處理的問題的沫勿,而其他框架改進數(shù)據(jù)綁定的效率之后挨约,也能夠把這方面的差距縮小很多。
參考[vue产雹、react和angular 2.x誰是2016年的主流诫惭?](vue、react和angular 2.x誰是2016年的主流蔓挖?)
有牛的干爹并且干爹是靠他吃飯的夕土。Facebook的網(wǎng)站不倒閉,React就一直會有人維護瘟判。這年頭選一個框架最擔心的就是過了一年怨绣,發(fā)現(xiàn)就只有我公司一個人用了。誰被坑過誰知道拷获。Angular2也是有牛的干爹的篮撑,可是google并不靠他吃飯。再說從Angular1到Angular2的這么坎坷的轉(zhuǎn)換來看匆瓜,我是不愿意再來一次擔驚受怕的赢笨。
組件是React最核心的優(yōu)勢。簡單驮吱,暴力而且非常有效茧妒。composition vs inheritance,至少在UI層面糠馆,組件/composition用起來真的方便嘶伟。
參考angular 和 React 想選擇一個學習,哪個比較好又碌?
接下來的主流框架大概會越來越像 Flex 的 MXML + AS3 + (SWF, SWC, CSS) 之于 HTML + ES6 + CSS3九昧,等到 HTML 的 WebComponents 和 ES6 逐漸穩(wěn)定之后,應(yīng)該就會來解決麻煩的動畫&特效的開發(fā)方式了毕匀。
四铸鹰、Vue
參考對比其他框架
React 和 Vue 有許多相似之處,它們都有:
- 使用 Virtual DOM
- 提供了響應(yīng)式(Reactive)和組件化(Composable)的視圖組件皂岔。
- 將注意力集中保持在核心庫蹋笼,伴隨于此,有配套的路由和負責處理全局狀態(tài)管理的庫。
參考Vue 和 React 的使用場景和深度有何不同剖毯?
React 推薦的做法是 JSX + inline style圾笨,也就是把 HTML 和 CSS 全都整進 JavaScript 了。Vue 的默認 API 是以簡單易上手為目標逊谋,但是進階之后推薦的是使用 webpack + vue-loader 的單文件組件格式.
- ember有個cli可以一鍵生成項目擂达,vue就出了個vue-cli。
- react出了jsx之后胶滋,vue也添加了對jsx的支持板鬓,react的vdom號稱性能牛逼,vue2.0就也實現(xiàn)了vdom究恤。
- react有reflux俭令、redux實現(xiàn)單項數(shù)據(jù)流,vue就也實現(xiàn)了個vuex部宿。
- vue的出現(xiàn)就是對angular 1.x的模仿抄腔,無論是模版還是雙向綁定。
- vue總是在借鑒窟赏、模仿別人妓柜,將別人的思想重新實現(xiàn)一遍。
vue涯穷,angular棍掐,avalon這三種MVVM框架之間有什么優(yōu)缺點?
http://tech.163.com/12/0316/16/7SNVLAD000094L5O_all.html
國內(nèi)有哪些公司在用Vue.js拷况,有什么心得
demo:爐石工具**
github:GitHub - nullest/hearthstone: A Demo For VueJs with laravel http://lushi.zhujunwu.cn/**