@@ -1316,14 +1316,18 @@ function baseCreateRenderer(
1316
1316
let vnodeHook : VNodeHook | null | undefined
1317
1317
const { el, props } = initialVNode
1318
1318
const { bm, m, parent } = instance
1319
+ const isAsyncWrapperVNode = isAsyncWrapper ( initialVNode )
1319
1320
1320
1321
effect . allowRecurse = false
1321
1322
// beforeMount hook
1322
1323
if ( bm ) {
1323
1324
invokeArrayFns ( bm )
1324
1325
}
1325
1326
// onVnodeBeforeMount
1326
- if ( ( vnodeHook = props && props . onVnodeBeforeMount ) ) {
1327
+ if (
1328
+ ! isAsyncWrapperVNode &&
1329
+ ( vnodeHook = props && props . onVnodeBeforeMount )
1330
+ ) {
1327
1331
invokeVNodeHook ( vnodeHook , parent , initialVNode )
1328
1332
}
1329
1333
if (
@@ -1359,7 +1363,7 @@ function baseCreateRenderer(
1359
1363
}
1360
1364
}
1361
1365
1362
- if ( isAsyncWrapper ( initialVNode ) ) {
1366
+ if ( isAsyncWrapperVNode ) {
1363
1367
; ( initialVNode . type as ComponentOptions ) . __asyncLoader ! ( ) . then (
1364
1368
// note: we are moving the render call into an async callback,
1365
1369
// which means it won't track dependencies - but it's ok because
@@ -1400,7 +1404,10 @@ function baseCreateRenderer(
1400
1404
queuePostRenderEffect ( m , parentSuspense )
1401
1405
}
1402
1406
// onVnodeMounted
1403
- if ( ( vnodeHook = props && props . onVnodeMounted ) ) {
1407
+ if (
1408
+ ! isAsyncWrapperVNode &&
1409
+ ( vnodeHook = props && props . onVnodeMounted )
1410
+ ) {
1404
1411
const scopedInitialVNode = initialVNode
1405
1412
queuePostRenderEffect (
1406
1413
( ) => invokeVNodeHook ( vnodeHook ! , parent , scopedInitialVNode ) ,
@@ -2085,9 +2092,13 @@ function baseCreateRenderer(
2085
2092
}
2086
2093
2087
2094
const shouldInvokeDirs = shapeFlag & ShapeFlags . ELEMENT && dirs
2095
+ const shouldInvokeVnodeHook = ! isAsyncWrapper ( vnode )
2088
2096
2089
2097
let vnodeHook : VNodeHook | undefined | null
2090
- if ( ( vnodeHook = props && props . onVnodeBeforeUnmount ) ) {
2098
+ if (
2099
+ shouldInvokeVnodeHook &&
2100
+ ( vnodeHook = props && props . onVnodeBeforeUnmount )
2101
+ ) {
2091
2102
invokeVNodeHook ( vnodeHook , parentComponent , vnode )
2092
2103
}
2093
2104
@@ -2140,7 +2151,11 @@ function baseCreateRenderer(
2140
2151
}
2141
2152
}
2142
2153
2143
- if ( ( vnodeHook = props && props . onVnodeUnmounted ) || shouldInvokeDirs ) {
2154
+ if (
2155
+ ( shouldInvokeVnodeHook &&
2156
+ ( vnodeHook = props && props . onVnodeUnmounted ) ) ||
2157
+ shouldInvokeDirs
2158
+ ) {
2144
2159
queuePostRenderEffect ( ( ) => {
2145
2160
vnodeHook && invokeVNodeHook ( vnodeHook , parentComponent , vnode )
2146
2161
shouldInvokeDirs &&
0 commit comments