fix(patch): clone insert hooks to avoid being mutated during iteration
Created by: xiaodemen
What kind of change does this PR introduce? (check at least one)
-
Bugfix -
Feature -
Code style update -
Refactor -
Build-related changes -
Other, please describe:
Does this PR introduce a breaking change? (check one)
-
Yes -
No
If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:
-
It's submitted to the main
branch for v2.x (or to a previous version branch) -
When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx]
, where "xxx" is the issue number) -
All tests are passing: https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#development-setup -
New/updated tests are included
If adding a new feature, the PR's description includes:
-
A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)
Other information: repro: https://jsbin.com/zobarureye/edit?html,js,console,output
There is a component called v-switch
that is placed inside a transition-group
element. The v-switch
component has a directive called v-foo
, accepts a boolean prop called isOn
and switches its template root according to the value of isOn
. The v-foo
directive has an inserted hook that should be called to ensure that the binding logic is refreshed whenever the template root changes.