1. 程式人生 > >如何通過 Vue+Webpack 來做通用的前端元件化架構設計

如何通過 Vue+Webpack 來做通用的前端元件化架構設計

目前如果要說比較流行的前端架構哪家強,屈指可數:reactjs、angularjs、emberjs、avalonjs、vuejs。

我個人接觸使用過:avalonjs、angularjs、vuejs。因為工作以及前端團隊能力的問題,所以在不同的公司,在開發工作中選用了不同的前端架構。

以下僅僅是代表我個人選用架構的一些看法和理由,如下:
angular:
我覺得angularjs的學習上手週期比較長,可能遇到問題,都無法立刻解決,而且編碼的質量明顯的很差,如果團隊沒有制定規範,那寫出來的程式碼就沒法看。對於一個選用angularjs的團隊來說,我認為編碼規範是很重要的,否則對編碼能力是沒有提升的。

avalon:
avalonjs文件資料沒有那麼全,我感覺一些開源支援的力量不夠多。不過,如果有專案需求,需要去做IE瀏覽器的支援話,我建議選擇avalonjs

vue:
vuejs 文件比較齊全,vue吸取了angularjs 的一些優點,規避了一些缺點,至少編碼規範上有了一個質的飛躍,學習上手的週期比較短。vue起初只是一個輕量級的類庫,用來做類似於react的事情,同時vue也是可以拿來做前端架構設計的,比如:vueify + vue-router(spa框架)。

vue學習地址:http://cn.vuejs.org/

以上說了那麼多沒用的,下面就來點幹活了!

我的前端元件化架構設計,目錄如下:

專案架構用到的知識點,還是挺多的,知識清單如下:

[1]:gulp + webpack 構建打包工具, 使用了一系列的loader,比如:vue-loadersass-loaderbabel-loader , 以及 postcsspostcss-custom-properties,等等

[2]:postcss-custom-properties : 用來做樣式全域性化, 只需要通過變數去維護,通過編譯變數既可以換膚。

[3]:vue-loader (vue檔案元件化):用來去編譯處理 *.vue 的檔案,一個vue 檔案就是一個單獨的元件,vue元件開發具有高獨立且易維護。元件的劃分可大可小,一個頁面也可以看作成由多個vue 元件構成的,一個頁面也可以是一個vue元件, vue 檔案結構如下:

[4]:babel-loader :實現對vue檔案中 es6 語法的編譯解析

[5]:vue-router :用來做路由分發,而且文件非常的齊全(學習地址:http://vuejs.github.io/vue-router/zh-cn/index.html)。

[6]:vue (外掛式方式):vue本身提供了一個install 方式用來注入,我們可以注入一些全域性的(屬性、方法、以及通用的ui元件)。

下面說說資料夾的含義:

  • common 資料夾: 是用來存一些通用的東西,比如樣式,以及全域性的js等等
  • components 資料夾:用來放獨立的元件,我打算後期做細分,ui 元件,以及page 元件等等,這裡面就是團隊的心血,以後就能做成獨立的元件庫了。
  • filters 資料夾:用來放通用的過濾器操作。
  • plugins 資料夾:用來放 Vue.use 注入到Vue全域性的外掛庫,比如:請求載入、彈框、分頁、ui元件 等等。plugins 只是把 componets元件暴露給 Vue全域性。
  • views 資料夾: 用來存放頁面模組
  • app.vue 檔案:第一次啟動的主程式模組
  • app.js 檔案:啟動前的載入,注入,例項化
  • router.config.js 檔案:路由模組

目前該架構在前後臺的SPA架構都適用,可能還是有很多不完善,不過我還很年輕,vue也還狠年輕,望各位道友多給我們年輕人一些機會。

http://mp.weixin.qq.com/s/8D8h0bFInOc9WohduJdxNQ