元件化開發的思考

JLeemt發表於2018-04-28

經歷過很多場面試,以及對自己所做專案的思考與積累。對於元件化的開發有了一點點理解。 其實開發一個專案,就類似與做一個樂高玩具。樂高由不同的積木塊拼成,每個積木塊可以和不同的積木塊連線。 而且積木塊與積木塊之間沒有影響。一個蘿蔔一個坑,只要這個坑你能填進去,你就適合。 而我們開發一個專案的時候,就要規劃好那些功能.在前端來說,就是哪些標籤,哪些CSS,哪些JS能夠抽象成一個積木塊。 在程式設計開始後,再不斷的改進這個積木塊所需要用到的資料,事件。積木塊之間的影響如何儘量的解耦。 父元件子元件的資料如果傳遞和更改。

如何實現元件化

元件在spa的實現

  1. 通過jsx或者template,在檔案中定義好css,js。
  2. 此元件需要那些屬性。屬性是通過props由上級傳過來,還是直接定義在data,又或者是定義在狀態管理中。
  3. 資料是否需要持久化,快取?因為spa在一次重新整理之後,會初始化(根據你寫的程式碼)資料狀態,所以我們需要記錄這些資料, 這些資料是存在 localstorage還是cookie,使用storage時是否需要考慮到向後相容。
  4. 資料的改變,是提交至狀態管理,還是通過子元件事件提交,父元件監聽相應的事件去改變這個資料。
  5. 某個功能是否有必要將它抽象成元件,主要看複用需求,因為轉換成元件,往往需要改變很多頁面的結構,以及資料,事件。
  6. 元件的可擴充性,如果需要這個元件完成新加的需要,改動最小。

元件在JQuery中的實現

  1. 先寫好這個元件的樣式,以及功能。
  2. 建立一個建構函式,包含元件例項的建立,將1中的html程式碼轉成字串進行拼接。或者DocumentFragment物件。
  3. 繫結事件。
  4. 將需要用到的資料,用過事件的引數傳遞。
  5. 插入到指定的位置,append

物件導向開發

在進行元件化的開發時,其實就已經有物件導向開發的思想,你就能用到建構函式、prototype、繼承等物件導向開發的特性。 但是這個步驟不需要強制的使用到所有的場景,因為有時候抽象元件時你花費的時間,以及元件的健壯性都不能讓你滿意。 按照需求去敲程式碼,思考。才是最適合開發者的方式。 而且,一種開發思想的建立,是需要程式碼量,需要自我驅動的思考。

相關文章