Skip to content

Commit 34c6ebf

Browse files
authored
fix(hmr): properly stop render effects during hmr re-render (#14023)
1 parent 1cc0553 commit 34c6ebf

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

packages/runtime-vapor/__tests__/components/Teleport.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ describe('renderer: VaporTeleport', () => {
195195
expect(target.innerHTML).toBe('<div>teleported 2</div>')
196196
})
197197

198-
test.todo('parent rerender + toggle disabled', async () => {
198+
test('parent rerender + toggle disabled', async () => {
199199
const target = document.createElement('div')
200200
const root = document.createElement('div')
201201
const parentId = 'test3-parent-rerender'

packages/runtime-vapor/src/renderEffect.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ export class RenderEffect extends ReactiveEffect {
4141
this.onTrigger = instance.rtg
4242
? e => invokeArrayFns(instance.rtg!, e)
4343
: void 0
44+
45+
// register effect for stopping them during HMR rerender
46+
;(instance.renderEffects || (instance.renderEffects = [])).push(this)
4447
}
4548
job.i = instance
4649
}
@@ -71,11 +74,6 @@ export class RenderEffect extends ReactiveEffect {
7174
setCurrentInstance(...prev)
7275
if (__DEV__ && instance) {
7376
startMeasure(instance, `renderEffect`)
74-
75-
if (instance.renderEffects) {
76-
instance.renderEffects.forEach(e => e.stop())
77-
instance.renderEffects = []
78-
}
7977
}
8078
}
8179

0 commit comments

Comments
 (0)