You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/ticket-asymmetric-vdom-updates.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -99,6 +99,7 @@ This feature branch represents a major architectural enhancement to the VDOM upd
99
99
100
100
-**Core Framework Refactoring:**
101
101
-`mixin/VdomLifecycle.mjs`: This critical mixin has been significantly refactored. The complex, distributed state management (`childUpdateCache`) has been removed, and it now delegates all collision and merge logic to the new `VDomUpdate` manager.
102
+
The `executeVdomUpdate()` method has been modernized to use `async/await`, making the control flow more robust and readable, and ensuring deltas are correctly applied in non-worker environments.
102
103
-`vdom/Helper.mjs`: The diffing engine has been enhanced to support the new asymmetric update strategy.
103
104
-`component/Base.mjs`: The base component has been improved with a robust `mountedPromise` for easier async handling and other lifecycle enhancements to support the new update model.
104
105
-`manager/Component.mjs`: Has undergone significant refactoring to align with the new VDOM strategies.
@@ -112,8 +113,10 @@ This feature branch represents a major architectural enhancement to the VDOM upd
112
113
113
114
### Remaining Work to Complete the Epic (as of this PR)
114
115
115
-
The `dev` branch still contains the original, distributed state management logic within `VdomLifecycle.mjs`. The following work remains to be done on this feature branch before it can be merged:
116
+
While the core architectural shift is complete, the following tasks remain to finalize the epic:
116
117
117
-
-**Full Integration:** Refactor `VdomLifecycle.mjs` to completely remove its local caches and delegate all collision and merge logic to the new `VDomUpdate` manager.
118
-
-**Finalize Asymmetric Logic:** Complete the implementation in `TreeBuilder` and `vdom.Helper` to handle the `neo-ignore` placeholder for truly asymmetric updates.
118
+
-**Finalize Cleanup:**
119
+
- The `childUpdateCache` property inside `src/component/Base.mjs` is now obsolete. It can be safely removed, as `VDomUpdate` has taken over its responsibilities.
120
+
- The `updateVdom()` method in `VdomLifecycle.mjs` still uses a `timeout` to handle updates on unmounted components. This can be refactored to use the new `mountedPromise`, creating a cleaner and more robust implementation.
121
+
-**Complete Asymmetric Logic:** The `TreeBuilder` and `vdom.Helper` still need the final logic to handle the `neo-ignore` placeholder. This will enable truly asymmetric updates where non-participating component sub-trees are completely skipped during the diffing process.
119
122
-**Performance Benchmarking:** Conduct rigorous performance tests to compare this branch against `dev` and ensure no regressions.
0 commit comments