leafer-ui
leafer-ui copied to clipboard
【讨论】addAttr 方法是否可以同时支持设置getter、 setter 方法?
有个场景,需要实现类似稿定设计那种文字特效的,核心原理就是一个特效就是一组 fill、stroke、shadow 等组成。
于是我需要通过 addAttr 为文字增加 effects 属性,getter 中把多个属性转换为一组effect,可是设置 effect 的时候遇到了困难,我这个effect实际上只是存储了这个特效数据,真正要实现效果还得设置 fill 等属性。
故,我需要 addAttr 提供属性的getter、setter方法,便于我对多个属性进行处理。
目前还不清楚这个想法是否符合您预期,有更好的实践方案吗?
addAttr的第三个参数是ts装饰器函数,可以定义getter/setter, 不过需要熟悉源码(找到boundsType函数看看),需要把之前的逻辑带上。
好的,我悟了。我新做了一个装饰器来自定义 getter/setter。
另外阅读了源码结合历史 issue #79 , 我想 defaultValue 使用函数形式的时候可以给属性主动赋值一次,从而实现初始化的效果,以便toJSON可以正常导出。
默认值主要是用来节省内存和存储大小的(数万元素的时候比较明显),如果赋值了这个优势就没了😂