受React組件思想啓發,本文討論在Meteor客戶端應用組件化思想,以Spacebar模板語言爲例。html
所謂前端組件(個人定義),是一組html代碼以及相關樣式、行爲的封裝。它可被複用,經過傳遞參數進行初始化,並能夠調用其定義的方法對其進行控制。而且,其狀態,樣式都是局部封裝的,不會擴散並影響全局。前端
典型地,一個組件具備data和states(React中叫作props和statues)。data是外部傳入,用於構建、渲染組件的數據,在組件實例的整個生命週期中是不變的。states是組件內部封裝的狀態,用於協助控制組件行爲,和組件的行爲和渲染是雙向綁定的,且對外部是透明的,組件能夠以提供方法或回調的形式向外部暴露狀態。react
Meteor能夠以template的形式封裝組件。template能夠擁有數據和實例變量,能夠用template數據來實現組件data,用reactive模板實例變量來實現組件states,例如定義一個ReactiveDict類型的實例變量states。具體實現方式參考http://www.cnblogs.com/zhaoyao91/p/4535928.html函數
todo組件化
如何實現組件方法或回調以供外部獲取狀態,暫時沒有想好。可能的方法是,父組件經過data向子組件傳遞迴調函數雙向綁定