fix(runtime-core): openBlock() should not be tracked when block tracking is disabled
This commit is contained in:
parent
552ad4e926
commit
ad93fa42fc
@ -12,7 +12,7 @@ import {
|
||||
} from '../src/vnode'
|
||||
import { Data } from '../src/component'
|
||||
import { ShapeFlags, PatchFlags } from '@vue/shared'
|
||||
import { h, reactive, isReactive } from '../src'
|
||||
import { h, reactive, isReactive, setBlockTracking } from '../src'
|
||||
import { createApp, nodeOps, serializeInner } from '@vue/runtime-test'
|
||||
import { setCurrentRenderingInstance } from '../src/componentRenderUtils'
|
||||
|
||||
@ -535,6 +535,18 @@ describe('vnode', () => {
|
||||
expect(vnode.dynamicChildren).toStrictEqual([vnode1])
|
||||
expect(vnode1.dynamicChildren).toStrictEqual([vnode2])
|
||||
})
|
||||
|
||||
test('should not track openBlock() when tracking is disabled', () => {
|
||||
let vnode1
|
||||
const vnode = (openBlock(),
|
||||
createBlock('div', null, [
|
||||
setBlockTracking(-1),
|
||||
(vnode1 = (openBlock(), createBlock('div'))),
|
||||
setBlockTracking(1),
|
||||
vnode1
|
||||
]))
|
||||
expect(vnode.dynamicChildren).toStrictEqual([])
|
||||
})
|
||||
})
|
||||
|
||||
describe('transformVNodeArgs', () => {
|
||||
|
@ -235,7 +235,7 @@ export function createBlock(
|
||||
closeBlock()
|
||||
// a block is always going to be patched, so track it as a child of its
|
||||
// parent block
|
||||
if (currentBlock) {
|
||||
if (shouldTrack > 0 && currentBlock) {
|
||||
currentBlock.push(vnode)
|
||||
}
|
||||
return vnode
|
||||
|
Loading…
Reference in New Issue
Block a user