书接上回,当我封装好 ReCard 之后,发现并不是那么的好用。由于组件里面只封装了一些简单的样式,并没有复杂的逻辑,我在想:能否将样式抽离,直接复用到对应的结构呢?
历史重演
通过文档检索,我找到了两种方式:@Styles 和 @Extend,于是我按照给出的 Demo 抄下来之后,样式也成功复用上去了,一切都是那么的顺利。
当一个页面内的代码多起来之后,就该考虑模块抽离分开维护了,样式也是如此。但是,当我将样式抽离到单独的文件中,使用 export 导出后,一个不太醒目的红色波浪下划线又出现了...
这次,我吸取了上次的教训,并没有着急,因为我知道,肯定有另一种方法来实现类似的功能。通过查阅文档,以及 AI 的辅助,我找到了另一个 API: AttributeModifier。
由于 @Styles 和 @Extend 不支持模块导出语法,但 AttributeModifier 就如其名称一样,可以灵活的控制属性。就跟 CSS 一样,定义一系列的样式属性来应用到 UI 中。虽然 Demo 里面只演示了如何对 Column 进行控制,但是通过泛型传递参数,可以更灵活地适配多个 UI 组件。
结
总之,不同的需求有着不同的应对方案,SDK 提供了很全面的 API,虽然目前都比较原生,但是随着生态的慢慢发展,通过多个 API 的结合使用,基本上可以应对市面上所有的需求了。