fix(runtime-core): should not track dynamic children when the user calls a compiled slot inside template expression #3554
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix: #3548
Edit:
Also fix #3569, at first I tried to fix issue #3569 in another independent PR(#3573), and then I realized the strong coupling between issue #3548 and issue #3569, so I merged them into this one PR.
Issue #3569 is another problem caused by the mixed-use of optimization mode and manual render function, technically, the user can get any VNode in the manually written render function, e.g.
Suppose the initial value of
index
is 100, and then it becomes999
, then the old and new subTree may be:Obviously, they are not comparable, and they may come from different levels.
The idea is, for slots, if the user manually obtains the contents of the slot by calling the slots function, we should be forced to bail out the optimization mode