謝謝邀請!關于前端如何包裝自己的代碼。其本質說的就是一個組件化的問題,目的就是最大程度上提升開發效率。下面我就前端如何更高效的進行組件化開發,談一下前端如何包裝自己的共享代碼。項目開發方式分組件化和非組件化。先講講組件化。畢竟主流
一、組件化
組件化開發分同一個業務內和不同業務之間如何包裝共享代碼問題。
1.同一個業務內:話不多說,先來看一張圖。如上圖所示:其實任何一個項目都是由一個或者兩個或者N個頁面組成,在組件化的開發模式下,每一個頁面的開發過程,其本質就是變成了,將一個頁面如何拆分成不同的業務組件,這其中,有兩種情況:(業務組件)比如一個組件,它是和業務還是有關系的,被多個頁面所引用的話,我們是可以把它抽離成一個公共組件的。另外一種(公共組件),完全和業務沒有關系的,不旦在業務內可以使用,而且可以跨業務使用,可以抽離成更基礎的組件。接著往下就是基礎模塊,它屬于這種非UI的模塊,涉及到一些功能型組件,如格式化時間數據,登錄,上報代碼等。最后一層,也是最底層就是項目的構建層,包括打包依賴資源安裝升級部署等等。如此看來,對于業務內如何包裝共享代碼就一目了然了。只要按照這幾個層次來劃分(在業務內封裝可重用組件,至于如何來封裝一個更優的組件,也是有些詳細的講究,這個主題回頭也可以開篇來詳述),即使多人合作開發也不會出亂。穩中有序。2.不同業務之間同樣先來看一張圖:如上圖所示:如果兩個不同業務之間,出現相同的功能及相同業務組件需要復用的話,就會出現不停的被COPY。一旦組件出現改動,就需要打開多個項目進行個性,出現遺漏還得背鍋。copy這種方式也極其容易出錯。不是一個有效的工作方式。因此,我們可以將這公用組件代碼包裝成一個NPM安裝包(公共組件,基礎組件),將項目初始架構包裝成一個腳手架。這樣在新開一個業務需要復用這些東西的時候,只需命令式安裝和組裝,然后改改UI就完事了。當然,這里會涉及到NODE命令行工具的開發及NPM安裝包的封裝,具體封裝細節下回也可以詳細來講講。二、非組件化
如果你的JS代碼是一個大文件,找機會把可以重用的功能提取到自包含的對象中,放入到一個單獨的庫中。若發現已經有了在所有項目開發中重復使用的一組函數,考慮將它們打包,以通過一個對象直接量來重用。下面舉一個簡單的例子:下面這段代碼,包含三個可以在各個業務中高度復用的功能。可以將上面這段代碼寫在一個字面量里自由調用。當然,有時間或者有興趣的可以自己來封裝一個類似于JQ的庫,一個屬于自己調用的基礎庫,也是一種極其優越的代碼包裝方式。總結一下:代碼包裝也可以根據實際的場景來做,在你的業務場景的復用性極高的功能都可以包裝成一個公共JS方法,或者組件,或者安裝包,總之,我們最終的目的就是提升二次開發效率。