fix(slider): slider will rerender when every mouseEvent
emitted
#2658
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We only should setState when the position changes
🤔 这个 PR 的性质是?
🔗 相关 Issue
无
💡 需求背景和解决方案
开发环境时如果稍微快速拖动 Slider 调整数据,就很容易导致组件的 rerender,因为组件将每一个鼠标移动事件,都进行了状态的更新。
在这里我们使用一个 Ref 的 number[] 数组对已有的数据进行缓存,只有和上一步的值出现了变动的时候,才需要去更新我们的状态,从而防止触发 React 的短时间内过多的更新导致的白屏现象。
📝 更新日志
fix(slider): 更好的拖拽性能
本条 PR 不需要纳入 Changelog
☑️ 请求合并前的自查清单