最近重拾Angular昭卓,準(zhǔn)確的說是從AngularJs到Angular的遷移愤钾,已經(jīng)相當(dāng)長(zhǎng)一段時(shí)間沒有觸碰前端,重走前端之路候醒,多了幾分思考和感慨能颁。作為一個(gè)“偽前端”,以java為主業(yè)倒淫,node以輔助伙菊,機(jī)緣巧合入了前端開發(fā)的門,并搞了一些hybrid的移動(dòng)開發(fā)敌土,與勤懇耕耘前端的“專業(yè)前端”相比镜硕,自是羸弱很多,本文以此角度分享返干,末尾也將給出一些個(gè)人的總結(jié)兴枯。如有偏頗,網(wǎng)諸位指正矩欠。
我不是一個(gè)狂熱的google粉财剖,使用Angular也是誤打誤撞悠夯,進(jìn)入上一家公司的時(shí)候,恰逢一個(gè)項(xiàng)目部分重構(gòu)躺坟,前端框架就是Angular(Angular1.X + KendoUI + Customized Directives + Open Source Directives) 沦补,當(dāng)時(shí)AngularJs正是如日中天,我也寫的津津有味咪橙,后臺(tái)配之RESTful API甚至Happy跋Π颉(當(dāng)然現(xiàn)實(shí)并沒有那么美好,其中的坑和歷史原因的workaround也是挺扯的)匣摘。后來也參與了使用Ionic 進(jìn)行mobile開發(fā)的部分工作店诗,也打開了一扇新技術(shù)的大門,hybrid概念也風(fēng)起云涌音榜,大家躍躍欲試庞瘸,自此 移動(dòng)、Web赠叼、后臺(tái)之路勉強(qiáng)打通擦囊。如今踏入Angular,不免懷念嘴办。
Angular:群雄逐鹿中的高瞻遠(yuǎn)矚
如今前端之火熊熊燃燒瞬场,前端的工程化之路欣欣向榮,各大廠涧郊、各路牛人乃至ES標(biāo)準(zhǔn)都各顯神通:諸如Google的AngularJs贯被、Facebook的React、尤雨溪大神的Vue.js妆艘、ES6的推進(jìn)等無不說明這是一個(gè)群雄逐鹿的“大前端時(shí)代”彤灶。
秦失其鹿,天下共逐之批旺,而贏家并非只有一個(gè)幌陕。
-
從AngularJs到Angular :谷歌的高瞻遠(yuǎn)矚
對(duì)于一個(gè)AngularJs的使用者來講,Angular2的各種消息無疑會(huì)有一些打擊:全新框架設(shè)計(jì)汽煮、不兼容1.X版本搏熄、推薦使用TypeScript開發(fā)等,天啊暇赤,難道手里的東西要丟掉重新開始心例?看下如今最紅火的幾個(gè)框架的目標(biāo):
AngularJS — Superheroic JavaScript MVW Framework
Angular: One framework
Vue:The Progressive JavaScript Framework
React:A JavaScript library for building user interfaces
注意,Angular是想做One framework翎卓,打通移動(dòng)契邀、web、桌面失暴,提供一站式服務(wù)坯门,相比其他輕量級(jí)的解決方案微饥,無疑更具前瞻性(為了這個(gè)美夢(mèng)也是付出著努力啊)古戴。Vue.js的作者尤雨溪在知乎的回答中也提到欠橘,這些框架在當(dāng)下沒有絕對(duì)的贏家! 雖說Vue.js如今火爆现恼,但是領(lǐng)域還是以互聯(lián)網(wǎng)應(yīng)用為主肃续,輕量級(jí)、靈活叉袍;React作為一個(gè)Lib著重于View操作始锚;AngularJs依然火爆企業(yè)級(jí)應(yīng)用(Angular出來之前我也預(yù)測(cè)過,與諸位看法一致喳逛,Angular新版本并不會(huì)導(dǎo)致AngularJs的衰敗瞧捌,AngularJs經(jīng)歷了磨煉之后迎來真正的爆發(fā):越來越多的企業(yè)級(jí)應(yīng)用會(huì)選擇AngularJs,github上55032的start足以表明)润文。
Angular的決策著實(shí)影響了Angular的進(jìn)一步推進(jìn)姐呐,雖然我也認(rèn)同Just do one thing and make it best,但是有一個(gè)全面且優(yōu)秀的方案也在長(zhǎng)遠(yuǎn)來看更是美哉暗潋颉曙砂! -
從AngularJs到Angular之掣肘天下,縱橫捭闔
動(dòng)態(tài)語言一時(shí)爽骏掀,代碼重構(gòu)火葬場(chǎng)鸠澈!JavaScript由于歷史原因和其設(shè)計(jì)思想使得寫出好的js代碼、寫出好測(cè)的代碼變得困難截驮,記得初識(shí)javascript款侵,直覺它簡(jiǎn)單方便,等讀了一些js的書籍侧纯,踩過js的坑之后方覺靈活伴隨的陷阱(甚至有一本神書曰:the good part of JavaScript,捂臉逃...)甲脏。當(dāng)Google和巨硬在Angular上達(dá)成合作的時(shí)候我是甚為驚嘆的眶熬!兩大廠做后盾,TypeScript加Angular块请,這是要掣肘天下的節(jié)奏澳仁稀!6招隆贸弥!TypeScript與ES6的爭(zhēng)論我自是不言,但是從一個(gè)寫java為生海渊,兼做了前端的業(yè)余選手來講绵疲,類型無疑是一個(gè)好東西哲鸳!我想不是每個(gè)公司都可以招聘到BAT等大廠高水平的前端工程師、也不是每個(gè)項(xiàng)目能夠嚴(yán)格推行前端的編碼規(guī)范盔憨、做到嚴(yán)格的前后端分離也不是如描繪的那樣容易徙菠。每個(gè)前端的水平不一致、代碼風(fēng)格不一致郁岩、代碼庫(kù)越來越龐大婿奔、人員更迭等等在JS這個(gè)弱類型語言面前被放大。阿里的一前端大牛都抱怨问慎,寫node煩人捌继!況且一種兼職的偽前端的呢如叼?
有了類型有了編譯冰木,有了微軟大廠(良心講,微軟好些東西設(shè)計(jì)挺好薇正,若不是當(dāng)年太過封閉不至于被黑片酝,尤其被Java陣營(yíng)的人黑!)挖腰,寫代碼雕沿、重構(gòu)代碼乃至IDE提示都較js有大幅提升啊,不要紙上約束程序員猴仑,直接融到他的工具中是最穩(wěn)妥的方案审轮!
Angular與Typescrip的縱橫之策,給繁復(fù)巨大的企業(yè)級(jí)應(yīng)用帶來福音辽俗,給非專業(yè)的前端開發(fā)更多的保障疾渣,給微軟擁抱開源注入強(qiáng)心針,給谷歌推行思想一條更寬廣的路崖飘。
-
從AngularJs到Angular:潤(rùn)物有聲榴捡,且行且珍惜
溜一遍Angular的文檔,你會(huì)發(fā)現(xiàn)朱浴,其實(shí)AngularJs的思想精髓都還在吊圾,或者說更加分明、清晰翰蠢、優(yōu)秀项乒!Scope隨被移除但思想還在,融入到了Componet中梁沧;Controller也順勢(shì)變成Componet讓組件化意圖更加明顯檀何;Observe改進(jìn)性能,并刪除了額外的directive;模塊機(jī)制部分使用ES6并支持懶加載····频鉴,開發(fā)者呢栓辜,其實(shí)花費(fèi)一些時(shí)間就能很快上手。Angular并沒有放棄AngularJs的東西砚殿,在大創(chuàng)新的前提下還是為AngularJS的老開發(fā)們打開方便之門的啃憎!
生態(tài)環(huán)境上,Ionic也緊隨步伐似炎,設(shè)計(jì)基于material design簡(jiǎn)直不要太漂亮辛萍!雖說Angular的其他組件目前確實(shí)沒有那么紅火,但是我相信羡藐,在一段時(shí)間后將會(huì)大量增加(AngularJs到Angular的組件遷移贩毕,不算難事啊)仆嗦。
Angular在國(guó)內(nèi)似乎沒有那么紅火辉阶,普通企業(yè)級(jí)應(yīng)用在享受AngularJs的便利下,Angular確實(shí)會(huì)變成一個(gè)觀望選項(xiàng)瘩扼,不過我相信當(dāng)發(fā)覺了One Framework的好處以及明了TypeScript的便捷之后谆甜,講很快迎來大的發(fā)展!
總結(jié)
ES6是標(biāo)準(zhǔn)集绰,提供了模塊化和類型的概念规辱,我想專業(yè)的前端同學(xué)還是以ES6為主;Typescript是js的超集栽燕,提供了AOT罕袋,編譯是個(gè)好東西啊,雖不是正統(tǒng)標(biāo)準(zhǔn)但是包含這些標(biāo)準(zhǔn)碍岔,如我這般偽前端可以入手浴讯;關(guān)于Bable和TC的爭(zhēng)論我暫不論述,畢竟不是一個(gè)道路上的玩意兒蔼啦,再次榆纽,大前端時(shí)代,沒有唯一的贏家捏肢!怎么合適怎么來掠河,每個(gè)框架有各自的場(chǎng)景,選擇趁手兵器即可猛计!