关于小程序自定义组件的几点思考
Closed this issue · 2 comments
yangbin1994 commented
我猜测小程序的设计团队,对于代码设计的理想世界是这样的:
container
组件只存在一层,无法嵌套,有内部状态和生命周期钩子,并仅以page
形式表现。component
是真正意义上的pure component
,可以相互组合,最近出的wxs
则可以理解为组件的静态属性和方法。
现实是残酷的,如果要让自定义组件支持可受控的内部状态和生命周期钩子,就需要用一些迎合小程序世界的方式来进行代码的编写。
- 要让组件支持内部属性,还得在
page
的option
上做文章,毕竟小程序只认它;子一级的组件内部属性将挂载到父组件内部属性下,如果父级下存在多个同类型组件需要手动控制命名,还得在wxml
里面手动传入。 - 要让组件支持生命周期,同上,需要在
page
的option
的生命周期上进行糅合,遵循的规则是一类hook
走完再走另一类;子组件的hook
优先于父组件hook
调用。
接下来会出个工具,会对抽象组件类 option
进行数据处理,来体现组件间的嵌套关系。
yangbin1994 commented
在包装回调方法的时候,path路径的获取陷入了悖论,思考一周后给出代码
yangbin1994 commented
写完了,下面地址就是,有兴趣的朋友可以拉下来玩一下,另外小程序自己已经可以自定义组件了!!!😓
https://github.com/yangbin1994/wxapp-createE