GraphiteEditor / GraphiteEditor/Graphite

Upgrade to Svelte 5 and remove slow manual component event delegation

Đang mở
#1,877 1 bình luận 1 reaction 1 người được giao Được @Keavon nhận Xem trên GitHub
Performance Web
Ngôn ngữ chính
Rust
Star
27.2k
Fork
1.3k
Merge trung bình
20 giờ 5 phút
Pull request đã merge (30 ngày)
57

Mô tả

`LayoutRow.svelte` and `LayoutCol.svelte` each have to manually [delegate events](https://github.com/sveltejs/svelte/issues/2837) and we take the ugly approach of just naming every event for delegation. But as @adamgerhant and I just discovered when debugging a performance issue with creating and destroying a bunch of layers in the Layers panel, it turns out Svelte is creating and destroying an event handler for each and every one of those delegated events, even when nearly all are unused. Removing these quadruples the performance for creating/removing all those layers.

Svelte 5 [allows components to delegate events](https://svelte-5-preview.vercel.app/docs/old-vs-new#forwarding-events). We should aim to upgrade to Svelte 5 and update how those components are doing their event delegation. (Side note: can we also delegate other attributes like `class` and `style` to avoid the hacky way we have many components do that presently?) This should provide a significant frontend performance improvement for all components that utilize LayoutRow and LayoutCol.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.