From 0d8f08ab9b435f0c16aa24fa0e2e9f99fdd738ab Mon Sep 17 00:00:00 2001 From: msidolphin Date: Thu, 27 Jan 2022 17:10:44 +0800 Subject: [PATCH] perf(components): [el-scrollbar] prevent re-render when scrolling (#5670) * perf(components): [el-scrollbar] prevent re-render when scrolling * chore: improve code --- packages/components/scrollbar/index.ts | 2 +- packages/components/scrollbar/src/bar.ts | 26 ++- packages/components/scrollbar/src/bar.vue | 203 +++--------------- .../components/scrollbar/src/scrollbar.vue | 23 +- packages/components/scrollbar/src/thumb.ts | 14 ++ packages/components/scrollbar/src/thumb.vue | 194 +++++++++++++++++ 6 files changed, 263 insertions(+), 199 deletions(-) create mode 100644 packages/components/scrollbar/src/thumb.ts create mode 100644 packages/components/scrollbar/src/thumb.vue diff --git a/packages/components/scrollbar/index.ts b/packages/components/scrollbar/index.ts index 7d9bafef97..1e829330b4 100644 --- a/packages/components/scrollbar/index.ts +++ b/packages/components/scrollbar/index.ts @@ -7,4 +7,4 @@ export default ElScrollbar export * from './src/util' export * from './src/scrollbar' -export * from './src/bar' +export * from './src/thumb' diff --git a/packages/components/scrollbar/src/bar.ts b/packages/components/scrollbar/src/bar.ts index f8bd75dabd..5dd090572a 100644 --- a/packages/components/scrollbar/src/bar.ts +++ b/packages/components/scrollbar/src/bar.ts @@ -2,13 +2,25 @@ import { buildProps } from '@element-plus/utils/props' import type { ExtractPropTypes } from 'vue' export const barProps = buildProps({ - vertical: Boolean, - size: String, - move: Number, - ratio: { - type: Number, - required: true, + always: { + type: Boolean, + default: true, + }, + width: { + type: String, + default: '', + }, + height: { + type: String, + default: '', + }, + ratioX: { + type: Number, + default: 1, + }, + ratioY: { + type: Number, + default: 1, }, - always: Boolean, } as const) export type BarProps = ExtractPropTypes diff --git a/packages/components/scrollbar/src/bar.vue b/packages/components/scrollbar/src/bar.vue index 0951ac6c80..e0252fdc44 100644 --- a/packages/components/scrollbar/src/bar.vue +++ b/packages/components/scrollbar/src/bar.vue @@ -1,193 +1,42 @@ -