问题描述: Textarea输入框输入很多文字后,将焦点至于内容中间部分,然后长按删除,光标会移至内容末尾,应该保持原位置不变
复现机型: 小米8 ,小米10 以及其他大多数安卓机
问题原因: 在mpvue 或 uinapp 中对 textarea 使用了 v-model 。 其中在 mpvue 官网已明确指出: 合理使用双向绑定 mpvue 建议使用 v-model.lazy 绑定方式以优化性能,此外 v-model 在老基础库下输入框输入时可能存在光标重设的问题。 其本质原因是因为 v-model 会被mpvue 或 unapt 编译为原生的 bindinput 事件,然后在bindinput 中 setData textarea的 value 以及会有其他的一些处理逻辑, 频繁的设置导致了这个问题。
解决方案: 不使用 v-model,使用原生的 bindinput 事件来做处理逻辑,在 mpvue 中可以使用官方提到的 v-model.lazy。另外就是不要在input事件中频繁的去更新输入框的内容