yangbin1994/blog

关于小程序自定义组件的几点思考

Closed this issue · 2 comments

我猜测小程序的设计团队,对于代码设计的理想世界是这样的:

  1. container 组件只存在一层,无法嵌套,有内部状态和生命周期钩子,并仅以 page 形式表现。
  2. component 是真正意义上的 pure component ,可以相互组合,最近出的 wxs 则可以理解为组件的静态属性和方法。

现实是残酷的,如果要让自定义组件支持可受控的内部状态和生命周期钩子,就需要用一些迎合小程序世界的方式来进行代码的编写。

  1. 要让组件支持内部属性,还得在 pageoption 上做文章,毕竟小程序只认它;子一级的组件内部属性将挂载到父组件内部属性下,如果父级下存在多个同类型组件需要手动控制命名,还得在 wxml 里面手动传入。
  2. 要让组件支持生命周期,同上,需要在 pageoption 的生命周期上进行糅合,遵循的规则是一类 hook 走完再走另一类;子组件的 hook 优先于父组件 hook 调用。

接下来会出个工具,会对抽象组件类 option进行数据处理,来体现组件间的嵌套关系。

在包装回调方法的时候,path路径的获取陷入了悖论,思考一周后给出代码

写完了,下面地址就是,有兴趣的朋友可以拉下来玩一下,另外小程序自己已经可以自定义组件了!!!😓
https://github.com/yangbin1994/wxapp-createE