fix: avoid per-frame reactive mutations in DomWidgets positioning

Amp-Thread-ID: https://ampcode.com/threads/T-019cbb69-3404-726a-8888-182193115b88
This commit is contained in:
bymyself
2026-03-04 16:58:32 -08:00
parent 06f7e13957
commit ed2cd0fa35
2 changed files with 40 additions and 15 deletions

View File

@@ -118,16 +118,27 @@ function composeStyle() {
}
}
watch([() => widgetState.pos, () => widgetState.size, left, top], () => {
updatePosition(widgetState)
if (enableDomClipping.value) {
updateDomClipping()
}
composeStyle()
})
watch(
[() => widgetState, left, top, enableDomClipping],
([widgetState]) => {
updatePosition(widgetState)
[
() => widgetState.zIndex,
() => widgetState.readonly,
() => widgetState.positionOverride,
enableDomClipping
],
() => {
if (enableDomClipping.value) {
updateDomClipping()
}
composeStyle()
},
{ deep: true }
}
)
// Recompose style when clippingStyle updates asynchronously via RAF.