- 蘇格團隊
- 做者:Tomey
提及前端組件化是這幾年老生常談的話題,筆者就不在這裏對前端組件化思想的發展史、優劣作詳細的介紹。今天主要與你們分享一下,筆者在開發中從初期的小項目,到後期的項目功能迭代,功能模塊愈來愈多,項目愈來愈大,組件化規範制定不夠完善,多人團隊協做開發致使的一些問題,與筆主本身處理的方案的思考。前端
組件單向數據流,父組件狀態單向傳輸子組件vue
隨着功能迭代,非父子組件會共享一些狀態。 此處因爲非父子組件間狀態共享不復雜,優先使用狀態提高(狀態提高,咱們須要把子組件間共享的狀態,提高到容器組件進行管理,並有容器組件下發到子組件)解決此類問題。git
隨着更多的功能迭代,模塊分層愈來愈多,跨多層組件狀態共享愈來愈複雜github
狀態管理redux、vuex就是爲了解決此類問題而出現。vuex
經過以上的項目模塊迭代週期的發現,不可避免的出現多組件狀態共享。 一般處理共享狀態有三種方式:redux
筆者認爲解決問題的方法,就是制定相應規範,保證團隊代碼風格統一。函數
請看下圖:組件化
容器型組件:主要是獲取、更新、提交、刪除內含展現組件狀態數據,不包含任何Virtual DOM 的修改或組合,也不會包含組件的樣式。學習
展現型組件:展現型組件主要表現爲組件是怎樣渲染的,包含了Virtual DOM的修改或組合,也包含組件的樣式,同進不依賴任何形式的store。通常能夠寫成無狀態函數,但實際上因爲不少展現型組件裏依然存在生命週期方法,因此不必定都是無狀態的組件。3d
說明:
規範:
寫了一個vue+vuex的基礎實例,可供參考。下載 github
文章到此結束,寫這篇文章目標主要是記錄本身對於組件規範的思考,歡迎各位大佬提出本身的看法,文章有誤的地方請你們及時指正~