前端框架多?學不動?

在紛繁繚亂的表象背後,隱藏着簡單的規律。實際上,市面上全部前端框架都在解決兩個大問題:組件化和模塊化css

共同問題一:如何實現組件化

組件化有兩個好處:前端

  • 功能封裝
  • 跨項目複用

全部框架,不管用什麼語言來時間,都有一些基本的問題須要解決:程序員

  • 如何設計組件的生命週期?

如你所知,前端的特色是帶有 UI 界面,是須要跟用戶直接交互的東西。 所以,你必須爲這些 UI 組件設計完善的生命週期,從遠古的 Java Swing,到 QT,一直到 jQueryUI、Angular、React,你們都設計了本身的生命週期機制。雖然技術細節有差別,可是基本的結構是相似的,都須要經歷幾個基本的階段:初始化、渲染、存活期、銷燬。 請注意,全部 UI 組件幾乎都是這樣設計的,怎麼樣,還須要去強記那些內容嗎?前端框架

  • 組件之間如何通信?

OK,不管什麼 UI 框架,有了 UI 組件以後,緊接着就須要解決組件通信的問題: 你只要能解決如下3種狀況就能解決大部分問題了:父子見如何通信?兄弟間如何通信?遠房親戚之間如何通信? 不管哪一種框架,典型的解決方案有3種:父子之間經過事件或者直接調用進行通信;兄弟、遠房親戚之間利用事件總線進行通信;利用 cookie、localstorage、甚至服務端 Session 進行通信。cookie

  • 如何管理組件的狀態?

UI 組件不單單有外觀,外觀只是一張畫皮。裏面要有數據才行,既然有數據,就有狀態管理的問題。 在狀態管理這塊,須要仔細設計這些問題:是否須要雙向綁定?如何配合路由保持組件狀態?框架

  • 組件樣式怎麼作?

由於是前端框架, 因此沒關的問題也不能放鬆。所幸的是,在移動互聯網時代,用戶都已經習慣了"扁平化"、"極簡主義"這些設計風格,咱們能夠利用市面上現有的 css 樣式庫來給咱們的組件"化妝"模塊化

共同問題二:如何實現模塊化

如你所知,在 Java 裏面,咱們有完善的 Class/Package/Jar/ClassLoader 這些機制的支持。當 JVM 發現所須要的.class 文件沒有加載的時候,它本身會使用 ClassLoader 去加載,不須要程序員本身操心。組件化

可是在 JS 裏面不行,因爲 JavaScript 這門語言自己的缺陷,它沒有提供完善的模塊化支持,這就致使了全部前端框架必須本身解決本身解決模塊化的問題。ui

可是,值得慶幸的是,咱們有了 NodeJS,有了 Webpack,不再用像前幾年那樣本身搞 RequireJS 了!這就是爲何市面上主流的前端框架都用 Webpack 來作本身的 CLI 的緣由。設計

總結:不管你目前在使用什麼前端框架,不管你之後想學哪些前端框架,只要牢牢扣住"組件化"和"模塊化"這兩條主線,就不會迷失在技術細節裏面。

相關文章
相關標籤/搜索