我有一个所谓的聊天视图,它基本上由一个repeat.for
循环所有消息并使用<compose>
.
问题是,一旦消息计数超过 50 并且用户在聊天之间导航(这会触发repeat.for
更新,因为我替换了 VM 中的数据集),它就会变得非常慢。
我觉得在处理这样的视图方面我做错了。我能得到一些关于其他选择的意见吗?
我尝试过 UI 虚拟化,但不幸的是,当前插件不支持我需要的功能(可变高度项、自下而上对齐)。
我还对绑定做了很多优化,大多数都是一次性的,并且对数据集的更新是去抖动的。但这并没有改善事情,因为主要瓶颈是初始加载(第一次绑定视图)。
谢谢!
当前方法的示例:
<li repeat.for="message of chat.messages">
<compose view-model.bind="getMessageViewFromMessage(message) & oneTime"
model.bind="message & oneTime"
containerless>
</compose>
</li>