為什麼還要選擇angular與angular學前準備

這波能反殺發表於2016-07-13

哈哈[一臉尬笑],算了,還是別學angular了,來跟我學react吧。
修改於2017-11-29

為什麼還要選擇angular

我知道這個時間段學習angular在大環境來看似乎比較尷尬,並非明智之舉,react如日中天,angular2即將釋出,angular1.x 已經過了大熱期,這是一個後angular時代。也有認真拜讀過網上各路大神的文章,對react的肯定似乎更多一點。

因此在決定學習angular之前,我有認真的學習過一段時間react。

react有許多非常優秀的特性,比如上手很容易,需要掌握的新東西並不多,我們只需要跟著官方文件動手寫一些demo就能夠對react有一個比較直觀的瞭解,加上有平時許多的專案積累,往往在學習的時候就會不由自主的想到用react來處理這些問題會如何,這種思考讓我更加快速的上手。由於react自身的api並不多,因此常常需要藉助原生的js方法,這讓熟悉js的我感覺更加親切。當然,因為沒有實際的將react運用於正式專案中,導致還有許多優點我暫時體會不到,比如優秀的效能等。

但是對我個人來說,react還是有許多我不太喜歡的特點。

react將大量html程式碼,通過jsx寫在js檔案裡,可我是一個重度依賴emmet外掛寫html的人,html程式碼跑到js檔案裡去了,我就沒辦法快速的敲出html程式碼了,必須一個字母一個字母的敲,這嚴重影響了我的開發效率。為了找到能夠彌補這塊的外掛,我幾乎放棄atom,因為聽說vscode對於jsx的支援程度很高,因此花了一整天的時間研究vscode,找相關的外掛,但是無果。因此,如果使用react,就表示我的開發效率會嚴重受到影響,但願以後能夠有強大的外掛能夠解決這個問題吧!

和angular相比,react並不是一個完整的框架,它僅僅只是一個框架的v層。也就是常說的UI層。也就是說,如果我們想要掌握好react,除了學習react本身,我還需要學習大量的其他外掛來擴充react的功能。這直接導致了學習成本的劇增。

react的組裝特性讓我沒有信心能夠掌握好他。大一的時候上計算機組裝的某節課,有個十分令人討厭的老師在課上問我:我們班有沒有同學已經買過自己的電腦了? 我舉手。 老師問:你是怎麼買的。 我很直接的回答道: 給了學校教學樓下那個商店老闆3000塊錢,給他說我想弄一臺玩遊戲的電腦,然後就讓他幫我弄了。被老師當面嘲笑。他認為我們學計算機的怎麼好意思讓別人組裝電腦!一定會被坑。然而事實證明,在玩了幾年大型燒顯示卡遊戲之後,只有我的電腦還能夠繼續high。一起玩的那些同學的電腦因為各種原因早就歇菜了。 所以我一直認為組裝是一個非常考驗水平的事情,並不是誰都能夠掌握好。

因為沒有過實際經驗,因此在面對一個專案的時候,我也不知道如何用react去構建一個專案才算是一個比較好的方案,這讓我非常困惑,不知如何下手。

總之,諸多的原因,讓我確定,通過自學,也許我能夠將react學會,但一定沒能力把它用好。因為我早早就感受過,如果水平不夠,就算用世界上最優秀的框架,照樣能夠寫出屎一樣的程式碼。

從國內的實際環境來說,一個穩定的東西,才是最值得信賴的,所以目前來說,至少還沒有哪個團隊會低看一個angular水平很高的人。

而且angular還有許多十分優秀的特點。

angular足夠穩定成熟,這麼多年來有許許多多的人分享了大量的使用經驗,我們可以找到許多優秀的文章。雖然初學angular時對於這種模式的不適應感比較明顯,因此造成了學習成本高的假象,但是認真學過來之後,感覺其實將angular運用到一個比較好的程度,所花費的時間與精力肯定要比react要少很多。對我來說,感受最深的是在學自定義服務的時候,發現其實都是返回一個單例,這對於已經能夠熟練使用js單例模式的我來說,就感覺十分輕鬆了。

angular的官方文章足夠詳細。也就是說,如果我們的英語足夠好,學習angular也會變得很容易。

angular的社群足夠成熟,目前已經有非常多成熟的第三方模組,基本上可以解決前端遇到的各種問題。

對我來說,還有一個重要的因素就是,住在我隔壁的大神強哥,以及辦公室坐在我背後老大,對angular的掌握都已經到了爐火純青的地步,遇到什麼難以解決的問題,問一問立馬就能夠得到解決[一臉賤笑]。

還有最重要的一點那就是:學好了angular,依然能夠找到工作。

因此,全面分析了react與angular,並結合自身的實際情況,最終還是覺得,先把angular學好比較靠譜。

學前準備

廢話了那麼多,這篇文章其實主要是跟大家分享一下angular的學前準備的。下面一一列舉。

學習資源:

  1. 英語好的,直接官方文件
    docs.angularjs.cn/

  2. 有秒味vip的可以直接看視訊入門學習




  3. angular中文社群
    angularjs.cn/ 有許多有價值的文章。

  4. google 搜尋
    遇到的問題百度搜尋找到的東西大多數都跟屎一樣!所以,google搜尋還是很重要的,它能夠帶我們找到許多非常有價值的文章。

  5. Plunker
    plnkr.co/
    專門用angular開發的線上coding工具,雖然介面比較醜,但是上面有許多有價值的demo,而且支援多檔案,比如我們需要寫一個路由相關的demo,那麼在Plunker上完成是最合適的。

外掛

  1. angular-ui
    在Atom上搜尋 angularjs,作者名叫做angular-ui
    為angular指令和angular的api提供程式碼高亮的外掛,方便我們識別。

  2. atom-ternjs
    api補全外掛,支援包括ES5, ES6, node.js,angular等

  1. Batarang
    Batarang 是一個chrome外掛。是對chrome開發者工具的一個擴充套件。可用於視察基於angular的web應用程式,方便檢視並視覺化應用的執行時的特徵。

入門學習期間可重點關注的一些知識點:

  1. 整個應用程式的執行順序
    config -> run -> directive compile -> controller -> directive link

  2. 資料繫結及其原理
    關鍵詞:dirty checking, $diget, $watch, $apply

  3. 作用域
    關鍵詞:$rootScope, $scope

  4. 自定義指令
    關鍵詞:directive, $compile, link

  5. 自定義服務
    關鍵詞:provider, factory, service

  6. 指令間如何互動
    關鍵詞:require, controller, link

  7. 如何有效的分層

  8. 如何進行DOM操作
    關鍵詞:directive link

  9. 路由
    ngRoute

  10. 事件

  11. 如何實現動畫
    關鍵詞 ng-if/ng-show/ng-hide ngAnimate

  12. 非同步程式設計
    $q, $http

因為我也剛開始學習不到半個月,因此如果在學習中大家發現更多值得學習的點,歡迎相互交流補充!

給自己準備一些實戰專案

我用angular將自己以前工作中做過的東西都抽空重做了一遍,感覺學到了很多,對angular的掌握也逐步熟練,因此在這裡建議大家初學時能夠找一些小專案來做,幫助很大。

比如官方為大家提供的:phonecat

比如我想搞一個賬號密碼管理小工具,這是我正在準備抽空給自己做的,如果哪天弄完了可以分享給大家

當然也可以藉助angular將自己的個人部落格弄成一個單頁應用。

相關文章