首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Compose vs XML /命令式框架中的状态

Android Compose vs XML /命令式框架中的状态
EN

Stack Overflow用户
提问于 2021-05-25 02:50:34
回答 1查看 188关注 0票数 1

我正在经历写作的道路,我一直看到所有这些对国家提升的强调。与旧的范例相比,这在新的撰写框架中是否更具相关性?总的来说,它似乎只是一种很好的编程技术。我担心我错过了Composable系统中的一个特殊优势。

EN

回答 1

Stack Overflow用户

发布于 2021-05-25 08:41:31

ActivityFragment的角度来看,它们几乎是相同的。进入一个状态流,ActivityFragment需要通过更新其内容来对更改做出反应。

然而,在Compose中,可以说,可组合的内容本身就是UI的小片段。在Compose中,您可以任意地将UI拆分成越来越小的片段,每个片段都会对状态变化做出反应。正是在这种分解中(可以这么说),状态提升变得很重要,并允许这些较小的UI片段可重用。即使您使用TextButton,它们也只是布局和绘制文本或映射用户输入到单击事件等的可组合函数。

如果状态已经在UI模型中,那么它已经被提升了。无需额外的吊装。只有当可组合体有自己的信息模型时,状态提升才是重要的。例如,TextField将其状态作为参数,而不是在内部创建和保存它。这允许状态直接保存在UI模型中,而不需要与其同步。该模型可以决定当状态改变时,TextField只是请求状态改变,而不进行控制。传统上,TextField将拥有自己的文本内部模型,并且仅在值发生变化时发送onChange通知。这意味着至少有两个字段的值模型,一个由控件持有,另一个由应用程序模型持有。同步这些可能会很棘手。

允许可组合状态的提升允许存在单一的真理来源,即应用程序模型,而不是需要全部同步到单个值的多个状态。Compose并不规定模型是什么或者它是如何存储的,它只需要知道值何时改变,这样它就知道什么时候更新UI。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67677445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档