Skip to content

refactor: replace vue-resize-observer with ResizeObserver-based directive#2121

Merged
jinbekim merged 6 commits into3.4from
2120-v-resize-vue-resize-observer의-object-dom-사용으로-인한-잠재적-문제
Mar 24, 2026

Hidden character warning

The head ref may contain hidden characters: "2120-v-resize-vue-resize-observer\uc758-object-dom-\uc0ac\uc6a9\uc73c\ub85c-\uc778\ud55c-\uc7a0\uc7ac\uc801-\ubb38\uc81c"
Merged

refactor: replace vue-resize-observer with ResizeObserver-based directive#2121
jinbekim merged 6 commits into3.4from
2120-v-resize-vue-resize-observer의-object-dom-사용으로-인한-잠재적-문제

Conversation

@jinbekim
Copy link
Copy Markdown
Collaborator

@jinbekim jinbekim commented Feb 9, 2026

요약

vue-resize-observer (object DOM 엘리먼트 방식)를 네이티브 ResizeObserver 기반의 커스텀 v-resize 디렉티브로 교체합니다.

변경 사항

  • src/directives/resize.js 추가 — 네이티브 ResizeObserver 구현
  • Chart, ChartBrush, Grid, TreeGrid, Tabs에서 vue-resize-observer import 제거 및 교체
  • package.json에서 vue-resize-observer 의존성 제거
  • 하위 호환성 유지: vue-resize-observer와 동일하게 position: static → relative 처리

배경

vue-resize-observer는 리사이즈 감지를 위해 HTML 엘리먼트를 사용하는데, 이로 인해 다음과 같은 문제가 발생할 수 있습니다:

  • CSP 정책에 의한 차단 (object-src)
  • 별도의 document context 생성으로 인한 오버헤드
  • 언마운트 시 메모리 누수 가능성

ResizeObserver는 브라우저 지원 범위가 넓고 DOM 조작 없이 동작합니다.

@jinbekim jinbekim changed the base branch from 3.0 to 3.4 February 9, 2026 01:58
jinbekim and others added 4 commits March 19, 2026 12:19
- Removed redundant helper function for mounting checkbox groups.
- Streamlined the mountWithRealCheckboxes function for better readability and efficiency.
Co-authored-by: Cursor <cursoragent@cursor.com>
@jinbekim jinbekim force-pushed the 2120-v-resize-vue-resize-observer의-object-dom-사용으로-인한-잠재적-문제 branch from 15ad41d to 57efb14 Compare March 19, 2026 03:20
@jinbekim jinbekim merged commit b89d3b1 into 3.4 Mar 24, 2026
1 check passed
@jinbekim jinbekim deleted the 2120-v-resize-vue-resize-observer의-object-dom-사용으로-인한-잠재적-문제 branch March 24, 2026 01:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v-resize: vue-resize-observer의 object DOM 사용으로 인한 잠재적 문제

2 participants