Meteor:组件思想

受React组件思想启发,本文讨论在Meteor客户端应用组件化思想,以Spacebar模板语言为例。

所谓前端组件(我的定义),是一组html代码以及相关样式、行为的封装。它可被复用,通过传递参数进行初始化,并可以调用其定义的方法对其进行控制。并且,其状态,样式都是局部封装的,不会扩散并影响全局。

典型地,一个组件具有data和states(React中叫做props和statues)。data是外部传入,用于构建、渲染组件的数据,在组件实例的整个生命周期中是不变的。states是组件内部封装的状态,用于协助控制组件行为,和组件的行为和渲染是双向绑定的,且对外部是透明的,组件可以以提供方法或回调的形式向外部暴露状态。

Meteor可以以template的形式封装组件。template可以拥有数据和实例变量,可以用template数据来实现组件data,用reactive模板实例变量来实现组件states,例如定义一个ReactiveDict类型的实例变量states。具体实现方式参考http://www.cnblogs.com/zhaoyao91/p/4535928.html

todo

如何实现组件方法或回调以供外部获取状态,暂时没有想好。可能的方法是,父组件通过data向子组件传递回调函数

 

posted @ 2015-09-03 22:47  我不是照耀  阅读(377)  评论(0编辑  收藏  举报