关于ViewModel架构中TextField输入内容是否属于UI State对象的疑问
关于ViewModel架构中TextField输入内容是否属于UI State对象的疑问
嘿,我最近在啃Android应用开发的内容,正在学架构组件相关的课程,其中有个关于Compose里ViewModel与状态的实践内容,我有点摸不着头脑——为啥他们要把TextField的输入内容放到ViewModel里管理呢?先跟你说说我目前的理解,再抛出我的疑问哈。
我现在知道,Compose的核心原则是状态驱动UI,ViewModel的作用就是持有和管理那些和UI相关、需要跨配置变更留存的状态。但在那个实践里,他们把用户在TextField里的实时输入内容,绑定到了ViewModel中的状态变量,而不是直接在Composable里用remember来保存。
我一开始的想法是:这种用户正在输入的临时内容,是不是属于UI层面的临时状态?用remember存就够了呀?但教程里说要放到ViewModel,理由是能保证状态一致性,比如屏幕旋转的时候,输入的内容不会丢失。
可我又纠结了:如果所有输入框的内容都一股脑放到ViewModel里,会不会让ViewModel变得太臃肿?比如有些只是临时输入、不需要跨配置保存,也和业务逻辑没啥关系的内容,真的有必要放到ViewModel里吗?到底怎么界定TextField的输入内容算不算该由ViewModel管理的UI State呢?
内容来源于stack exchange
相关产品推荐
相关产品推荐

