這個回答是尤大在quora上的一個回答
翻譯不好,請多指教。
讓我感到很煩的是,很多回答直接跳到技術比較或是用某某框架的上去了,而沒有問OP(操作系統?)到底是要實現什么呢?
所以讓我們先提出一個問題:通過挑選框架你到底想實現什么呢?
在短期內獲得一份工作盡可能快的去做一些東西作為一個學習經驗去提升你自己的JS技術如果你的目的只是1的話,那你最好去關注Angular 或者是React(作者注明:不是Angular 2,至少現在是這樣的)
因為這兩個都是非常成熟,并且使用的都非常廣泛,還能給你非常好的雇傭資歷。
Angular 1 being a bit more enterPRise-y while React being more startup-y.
而目標2,則更加依賴于你要做的APP的類型。它到底一個很大程序上依賴于后臺渲染的應用程序,還是一個純粹的單頁web應用?
就前者而言,你可能會比較輕松的使用一些輕量級、非侵入性(?哈?)的東西,而且也不需要特殊的工具,和html交互很好(作者提示:vue)。
而對于單頁web應用,那么我們需要在性能、功能、API的友好性、工具支持、生態系統成熟度等等問題上通過實際的技術比較。但這本身就是一個相當大的話題,它也可以是主觀的并且高度依賴項目。
至于第3個目標,你最好從一些輕量級的東西開始入手,因為全解型框架,像Angular/Ember 會在前期引入太多的概念,而只要你將控制權交給框架的話,那你幾乎會以學習框架特定APIs和約定結束,而不是學習廣泛適用的技術。另一方面,比較小的庫,因為他們比較小的API面,會強迫你去做出更多的控制,并了解如何把不同的塊實際的結合在一起(這個實際上是幫助你在以后能去拿起較大的框架)。
所以,這里最實際的建議就是:最先學習javaScript,然后把它學的特么的非常好。
這是最安全的下注。
有了扎實的基礎,你就應該可以在一段時間里撿起Vue/React/Mithril/Riot的基礎。
然后,你最好可以用每個框架做一個小應用程序,不要使用太過復雜的工具,
只是為了
1、理解這些框架到底解決了什么問題
2、明白你自己的偏好,舉個例子,就是搞清楚什么API的風格會讓你更有生產力
然后你就可以去嘗試更大的框架,因為你現在已經做了非常充足的準備了。
這一整個過程,將會非常花時間。
但和花好幾個月一頭扎入一個框架里最終意識到這個并不適合你比起來,這是非常值得投資的一條途徑。
另一方面,你也應該學習一些和框架無關的東西,
比如ES2015,
基本的node.js,
npm是如何工作的,
模塊系統/打包工具(browserify/webpack/system.js),
不管你使用什么框架,這些工具在大型單頁web應用里是不可或缺的部分。
核心的想法,就是不要把你所有的雞蛋都放在一個籃子里。
挑選一個JS框架不只是一個 非此即彼的情況。
你也不需要永遠只堅持一個。
無論別人怎么說,
如果不親自嘗試那些框架去獲得第一手經驗的話,對你來說很難做出最好的決定。
如果你只是使用一個,而忽略其他的話,那么你幾乎是做錯了。
新聞熱點
疑難解答