From 8413f8ea3141d4f59367b136d5fbcda5ab02fd8f Mon Sep 17 00:00:00 2001 From: Carter Li Date: Wed, 8 Jun 2022 02:04:48 +0800 Subject: [PATCH] refactor(components): use `useResizeObserver` (#8124) --- packages/components/cascader/src/index.vue | 11 +----- .../components/select-v2/src/useSelect.ts | 24 ++---------- .../components/select/src/select-dropdown.vue | 24 ++---------- packages/components/select/src/select.vue | 14 ++----- .../table/src/table/style-helper.ts | 37 ++++--------------- 5 files changed, 20 insertions(+), 90 deletions(-) diff --git a/packages/components/cascader/src/index.vue b/packages/components/cascader/src/index.vue index bcd77605af..01cd711c91 100644 --- a/packages/components/cascader/src/index.vue +++ b/packages/components/cascader/src/index.vue @@ -196,7 +196,6 @@ import { defineComponent, inject, nextTick, - onBeforeUnmount, onMounted, ref, watch, @@ -204,7 +203,7 @@ import { import { isPromise } from '@vue/shared' import { debounce } from 'lodash-unified' -import { isClient } from '@vueuse/core' +import { isClient, useResizeObserver } from '@vueuse/core' import ElCascaderPanel, { CommonProps, } from '@element-plus/components/cascader-panel' @@ -221,13 +220,11 @@ import { ClickOutside as Clickoutside } from '@element-plus/directives' import { useLocale, useNamespace, useSize } from '@element-plus/hooks' import { - addResizeListener, debugWarn, focusNode, getSibling, isKorean, isValidComponentSize, - removeResizeListener, } from '@element-plus/utils' import { CHANGE_EVENT, @@ -723,11 +720,7 @@ export default defineComponent({ inputEl?.offsetHeight || INPUT_HEIGHT_MAP[realSize.value] || DEFAULT_INPUT_HEIGHT - addResizeListener(inputEl, updateStyle) - }) - - onBeforeUnmount(() => { - removeResizeListener(input.value?.$el, updateStyle) + useResizeObserver(inputEl, updateStyle) }) return { diff --git a/packages/components/select-v2/src/useSelect.ts b/packages/components/select-v2/src/useSelect.ts index d643beb6a4..8f80f60487 100644 --- a/packages/components/select-v2/src/useSelect.ts +++ b/packages/components/select-v2/src/useSelect.ts @@ -1,14 +1,7 @@ -import { - computed, - nextTick, - onBeforeMount, - onMounted, - reactive, - ref, - watch, -} from 'vue' +import { computed, nextTick, onMounted, reactive, ref, watch } from 'vue' import { isArray, isFunction, isObject } from '@vue/shared' import { get, isEqual, debounce as lodashDebounce } from 'lodash-unified' +import { useResizeObserver } from '@vueuse/core' import { useFormItem, useLocale, @@ -16,12 +9,7 @@ import { useSize, } from '@element-plus/hooks' import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants' -import { - ValidateComponentsMap, - addResizeListener, - debugWarn, - removeResizeListener, -} from '@element-plus/utils' +import { ValidateComponentsMap, debugWarn } from '@element-plus/utils' import { ArrowUp } from '@element-plus/icons-vue' import { useAllowCreate } from './useAllowCreate' @@ -755,12 +743,8 @@ const useSelect = (props: ExtractPropTypes, emit) => { onMounted(() => { initStates() - addResizeListener(selectRef.value, handleResize) - }) - - onBeforeMount(() => { - removeResizeListener(selectRef.value, handleResize) }) + useResizeObserver(selectRef, handleResize) return { // data exports diff --git a/packages/components/select/src/select-dropdown.vue b/packages/components/select/src/select-dropdown.vue index da28c1a3fb..77324065eb 100644 --- a/packages/components/select/src/select-dropdown.vue +++ b/packages/components/select/src/select-dropdown.vue @@ -8,18 +8,10 @@