@vue/runtime-core 3.6.0-beta.5 → 3.6.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/runtime-core.cjs.js +66 -46
- package/dist/runtime-core.cjs.prod.js +62 -36
- package/dist/runtime-core.esm-bundler.js +68 -48
- package/package.json +3 -3
package/dist/runtime-core.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/runtime-core v3.6.0-beta.
|
|
2
|
+
* @vue/runtime-core v3.6.0-beta.6
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -984,36 +984,44 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
|
|
|
984
984
|
if (isReorder) insert(anchor, container, parentAnchor);
|
|
985
985
|
}
|
|
986
986
|
function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector, insert, createText } }, hydrateChildren) {
|
|
987
|
-
function
|
|
987
|
+
function hydrateAnchor(target, targetNode) {
|
|
988
|
+
let targetAnchor = targetNode;
|
|
989
|
+
while (targetAnchor) {
|
|
990
|
+
if (targetAnchor && targetAnchor.nodeType === 8) {
|
|
991
|
+
if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
|
|
992
|
+
else if (targetAnchor.data === "teleport anchor") {
|
|
993
|
+
vnode.targetAnchor = targetAnchor;
|
|
994
|
+
target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
|
|
995
|
+
break;
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
targetAnchor = nextSibling(targetAnchor);
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
function hydrateDisabledTeleport(node, vnode) {
|
|
988
1002
|
vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
989
|
-
vnode.targetStart = targetStart;
|
|
990
|
-
vnode.targetAnchor = targetAnchor;
|
|
991
1003
|
}
|
|
992
1004
|
const target = vnode.target = resolveTarget(vnode.props, querySelector);
|
|
993
1005
|
const disabled = isTeleportDisabled(vnode.props);
|
|
994
1006
|
if (target) {
|
|
995
1007
|
const targetNode = target._lpa || target.firstChild;
|
|
996
|
-
if (vnode.shapeFlag & 16) if (disabled)
|
|
997
|
-
|
|
1008
|
+
if (vnode.shapeFlag & 16) if (disabled) {
|
|
1009
|
+
hydrateDisabledTeleport(node, vnode);
|
|
1010
|
+
hydrateAnchor(target, targetNode);
|
|
1011
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
1012
|
+
} else {
|
|
998
1013
|
vnode.anchor = nextSibling(node);
|
|
999
|
-
|
|
1000
|
-
while (targetAnchor) {
|
|
1001
|
-
if (targetAnchor && targetAnchor.nodeType === 8) {
|
|
1002
|
-
if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
|
|
1003
|
-
else if (targetAnchor.data === "teleport anchor") {
|
|
1004
|
-
vnode.targetAnchor = targetAnchor;
|
|
1005
|
-
target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
|
|
1006
|
-
break;
|
|
1007
|
-
}
|
|
1008
|
-
}
|
|
1009
|
-
targetAnchor = nextSibling(targetAnchor);
|
|
1010
|
-
}
|
|
1014
|
+
hydrateAnchor(target, targetNode);
|
|
1011
1015
|
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
1012
1016
|
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
1013
1017
|
}
|
|
1014
1018
|
updateCssVars(vnode, disabled);
|
|
1015
1019
|
} else if (disabled) {
|
|
1016
|
-
if (vnode.shapeFlag & 16)
|
|
1020
|
+
if (vnode.shapeFlag & 16) {
|
|
1021
|
+
hydrateDisabledTeleport(node, vnode);
|
|
1022
|
+
vnode.targetStart = node;
|
|
1023
|
+
vnode.targetAnchor = nextSibling(node);
|
|
1024
|
+
}
|
|
1017
1025
|
}
|
|
1018
1026
|
return vnode.anchor && nextSibling(vnode.anchor);
|
|
1019
1027
|
}
|
|
@@ -1036,13 +1044,13 @@ function updateCssVars(vnode, isDisabled) {
|
|
|
1036
1044
|
ctx.ut();
|
|
1037
1045
|
}
|
|
1038
1046
|
}
|
|
1039
|
-
function prepareAnchor(target, vnode, createText, insert) {
|
|
1047
|
+
function prepareAnchor(target, vnode, createText, insert, anchor = null) {
|
|
1040
1048
|
const targetStart = vnode.targetStart = createText("");
|
|
1041
1049
|
const targetAnchor = vnode.targetAnchor = createText("");
|
|
1042
1050
|
targetStart[TeleportEndKey] = targetAnchor;
|
|
1043
1051
|
if (target) {
|
|
1044
|
-
insert(targetStart, target);
|
|
1045
|
-
insert(targetAnchor, target);
|
|
1052
|
+
insert(targetStart, target, anchor);
|
|
1053
|
+
insert(targetAnchor, target, anchor);
|
|
1046
1054
|
}
|
|
1047
1055
|
return targetAnchor;
|
|
1048
1056
|
}
|
|
@@ -1220,7 +1228,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
1220
1228
|
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
1221
1229
|
} else return;
|
|
1222
1230
|
let called = false;
|
|
1223
|
-
|
|
1231
|
+
el[enterCbKey] = (cancelled) => {
|
|
1224
1232
|
if (called) return;
|
|
1225
1233
|
called = true;
|
|
1226
1234
|
if (cancelled) callHook(cancelHook, [el]);
|
|
@@ -1228,6 +1236,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
1228
1236
|
if (hooks.delayedLeave) hooks.delayedLeave();
|
|
1229
1237
|
el[enterCbKey] = void 0;
|
|
1230
1238
|
};
|
|
1239
|
+
const done = el[enterCbKey].bind(null, false);
|
|
1231
1240
|
if (hook) callAsyncHook(hook, [el, done]);
|
|
1232
1241
|
else done();
|
|
1233
1242
|
},
|
|
@@ -1236,7 +1245,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
1236
1245
|
if (state.isUnmounting) return remove();
|
|
1237
1246
|
callHook(onBeforeLeave, [el]);
|
|
1238
1247
|
let called = false;
|
|
1239
|
-
|
|
1248
|
+
el[leaveCbKey] = (cancelled) => {
|
|
1240
1249
|
if (called) return;
|
|
1241
1250
|
called = true;
|
|
1242
1251
|
remove();
|
|
@@ -1246,6 +1255,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
1246
1255
|
unsetLeavingNodeCache(el);
|
|
1247
1256
|
};
|
|
1248
1257
|
setLeavingNodeCache(el);
|
|
1258
|
+
const done = el[leaveCbKey].bind(null, false);
|
|
1249
1259
|
if (onLeave) callAsyncHook(onLeave, [el, done]);
|
|
1250
1260
|
else done();
|
|
1251
1261
|
},
|
|
@@ -1343,8 +1353,7 @@ function useTemplateRef(key) {
|
|
|
1343
1353
|
const r = (0, _vue_reactivity.shallowRef)(null);
|
|
1344
1354
|
if (i) {
|
|
1345
1355
|
const refs = i.refs === _vue_shared.EMPTY_OBJ ? i.refs = {} : i.refs;
|
|
1346
|
-
|
|
1347
|
-
if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) warn$1(`useTemplateRef('${key}') already exists.`);
|
|
1356
|
+
if (isTemplateRefKey(refs, key)) warn$1(`useTemplateRef('${key}') already exists.`);
|
|
1348
1357
|
else Object.defineProperty(refs, key, {
|
|
1349
1358
|
enumerable: true,
|
|
1350
1359
|
get: () => r.value,
|
|
@@ -1355,6 +1364,10 @@ function useTemplateRef(key) {
|
|
|
1355
1364
|
knownTemplateRefs.add(ret);
|
|
1356
1365
|
return ret;
|
|
1357
1366
|
}
|
|
1367
|
+
function isTemplateRefKey(refs, key) {
|
|
1368
|
+
let desc;
|
|
1369
|
+
return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
|
|
1370
|
+
}
|
|
1358
1371
|
|
|
1359
1372
|
//#endregion
|
|
1360
1373
|
//#region packages/runtime-core/src/rendererTemplateRef.ts
|
|
@@ -1381,9 +1394,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1381
1394
|
const oldRef = oldRawRef && oldRawRef.r;
|
|
1382
1395
|
const refs = owner.refs === _vue_shared.EMPTY_OBJ ? owner.refs = {} : owner.refs;
|
|
1383
1396
|
const setupState = owner.setupState;
|
|
1384
|
-
const canSetSetupRef = createCanSetSetupRefChecker(setupState);
|
|
1385
|
-
const canSetRef = (ref) => {
|
|
1386
|
-
|
|
1397
|
+
const canSetSetupRef = createCanSetSetupRefChecker(setupState, refs);
|
|
1398
|
+
const canSetRef = (ref, key) => {
|
|
1399
|
+
if (knownTemplateRefs.has(ref)) return false;
|
|
1400
|
+
if (key && isTemplateRefKey(refs, key)) return false;
|
|
1401
|
+
return true;
|
|
1387
1402
|
};
|
|
1388
1403
|
if (oldRef != null && oldRef !== ref) {
|
|
1389
1404
|
invalidatePendingSetRef(oldRawRef);
|
|
@@ -1391,8 +1406,8 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1391
1406
|
refs[oldRef] = null;
|
|
1392
1407
|
if (canSetSetupRef(oldRef)) setupState[oldRef] = null;
|
|
1393
1408
|
} else if ((0, _vue_reactivity.isRef)(oldRef)) {
|
|
1394
|
-
if (canSetRef(oldRef)) oldRef.value = null;
|
|
1395
1409
|
const oldRawRefAtom = oldRawRef;
|
|
1410
|
+
if (canSetRef(oldRef, oldRawRefAtom.k)) oldRef.value = null;
|
|
1396
1411
|
if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
|
|
1397
1412
|
}
|
|
1398
1413
|
}
|
|
@@ -1410,7 +1425,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1410
1425
|
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
1411
1426
|
} else {
|
|
1412
1427
|
const newVal = [refValue];
|
|
1413
|
-
if (canSetRef(ref)) ref.value = newVal;
|
|
1428
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
1414
1429
|
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
1415
1430
|
}
|
|
1416
1431
|
else if (!existing.includes(refValue)) existing.push(refValue);
|
|
@@ -1418,7 +1433,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1418
1433
|
refs[ref] = value;
|
|
1419
1434
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
1420
1435
|
} else if (_isRef) {
|
|
1421
|
-
if (canSetRef(ref)) ref.value = value;
|
|
1436
|
+
if (canSetRef(ref, rawRef.k)) ref.value = value;
|
|
1422
1437
|
if (rawRef.k) refs[rawRef.k] = value;
|
|
1423
1438
|
} else warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
|
|
1424
1439
|
};
|
|
@@ -1436,11 +1451,12 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1436
1451
|
} else warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
|
|
1437
1452
|
}
|
|
1438
1453
|
}
|
|
1439
|
-
function createCanSetSetupRefChecker(setupState) {
|
|
1454
|
+
function createCanSetSetupRefChecker(setupState, refs) {
|
|
1440
1455
|
const rawSetupState = (0, _vue_reactivity.toRaw)(setupState);
|
|
1441
1456
|
return setupState === void 0 || setupState === _vue_shared.EMPTY_OBJ ? _vue_shared.NO : (key) => {
|
|
1442
1457
|
if ((0, _vue_shared.hasOwn)(rawSetupState, key) && !(0, _vue_reactivity.isRef)(rawSetupState[key])) warn$1(`Template ref "${key}" used on a non-ref value. It will not work in the production build.`);
|
|
1443
1458
|
if (knownTemplateRefs.has(rawSetupState[key])) return false;
|
|
1459
|
+
if (isTemplateRefKey(refs, key)) return false;
|
|
1444
1460
|
return (0, _vue_shared.hasOwn)(rawSetupState, key);
|
|
1445
1461
|
};
|
|
1446
1462
|
}
|
|
@@ -3551,7 +3567,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
|
|
|
3551
3567
|
const dynamicProps = nextVNode.dynamicProps;
|
|
3552
3568
|
for (let i = 0; i < dynamicProps.length; i++) {
|
|
3553
3569
|
const key = dynamicProps[i];
|
|
3554
|
-
if (nextProps
|
|
3570
|
+
if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) return true;
|
|
3555
3571
|
}
|
|
3556
3572
|
}
|
|
3557
3573
|
} else {
|
|
@@ -3570,10 +3586,16 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
|
|
|
3570
3586
|
if (nextKeys.length !== Object.keys(prevProps).length) return true;
|
|
3571
3587
|
for (let i = 0; i < nextKeys.length; i++) {
|
|
3572
3588
|
const key = nextKeys[i];
|
|
3573
|
-
if (nextProps
|
|
3589
|
+
if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) return true;
|
|
3574
3590
|
}
|
|
3575
3591
|
return false;
|
|
3576
3592
|
}
|
|
3593
|
+
function hasPropValueChanged(nextProps, prevProps, key) {
|
|
3594
|
+
const nextProp = nextProps[key];
|
|
3595
|
+
const prevProp = prevProps[key];
|
|
3596
|
+
if (key === "style" && (0, _vue_shared.isObject)(nextProp) && (0, _vue_shared.isObject)(prevProp)) return !(0, _vue_shared.looseEqual)(nextProp, prevProp);
|
|
3597
|
+
return nextProp !== prevProp;
|
|
3598
|
+
}
|
|
3577
3599
|
function updateHOCHostEl({ vnode, parent }, el) {
|
|
3578
3600
|
while (parent && !parent.vapor) {
|
|
3579
3601
|
const root = parent.subTree;
|
|
@@ -4080,13 +4102,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
4080
4102
|
if (n1 == null) hostInsert(n2.el = hostCreateText(n2.children), container, anchor);
|
|
4081
4103
|
else {
|
|
4082
4104
|
const el = n2.el = n1.el;
|
|
4083
|
-
if (n2.children !== n1.children)
|
|
4084
|
-
const childNodes = container.childNodes;
|
|
4085
|
-
const newChild = hostCreateText(n2.children);
|
|
4086
|
-
const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
|
|
4087
|
-
hostInsert(newChild, container, oldChild);
|
|
4088
|
-
hostRemove(oldChild);
|
|
4089
|
-
} else hostSetText(el, n2.children);
|
|
4105
|
+
if (n2.children !== n1.children) hostSetText(el, n2.children);
|
|
4090
4106
|
}
|
|
4091
4107
|
};
|
|
4092
4108
|
const processCommentNode = (n1, n2, container, anchor) => {
|
|
@@ -4422,7 +4438,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
4422
4438
|
updateComponentPreRender(instance, next, optimized);
|
|
4423
4439
|
}
|
|
4424
4440
|
nonHydratedAsyncRoot.asyncDep.then(() => {
|
|
4425
|
-
|
|
4441
|
+
queuePostRenderEffect(() => {
|
|
4442
|
+
if (!instance.isUnmounted) instance.update();
|
|
4443
|
+
}, void 0, parentSuspense);
|
|
4426
4444
|
});
|
|
4427
4445
|
return;
|
|
4428
4446
|
}
|
|
@@ -4831,8 +4849,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
4831
4849
|
}
|
|
4832
4850
|
if (!shallow && c2.patchFlag !== -2) traverseStaticChildren(c1, c2);
|
|
4833
4851
|
}
|
|
4834
|
-
if (c2.type === Text)
|
|
4835
|
-
|
|
4852
|
+
if (c2.type === Text) {
|
|
4853
|
+
if (c2.patchFlag === -1) c2 = ch2[i] = cloneIfMounted(c2);
|
|
4854
|
+
c2.el = c1.el;
|
|
4855
|
+
}
|
|
4836
4856
|
if (c2.type === Comment && !c2.el) c2.el = c1.el;
|
|
4837
4857
|
c2.el && (c2.el.__vnode = c2);
|
|
4838
4858
|
}
|
|
@@ -6082,7 +6102,7 @@ function isMemoSame(cached, memo) {
|
|
|
6082
6102
|
|
|
6083
6103
|
//#endregion
|
|
6084
6104
|
//#region packages/runtime-core/src/index.ts
|
|
6085
|
-
const version = "3.6.0-beta.
|
|
6105
|
+
const version = "3.6.0-beta.6";
|
|
6086
6106
|
const warn = warn$1;
|
|
6087
6107
|
/**
|
|
6088
6108
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/runtime-core v3.6.0-beta.
|
|
2
|
+
* @vue/runtime-core v3.6.0-beta.6
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -642,36 +642,44 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
|
|
|
642
642
|
if (isReorder) insert(anchor, container, parentAnchor);
|
|
643
643
|
}
|
|
644
644
|
function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector, insert, createText } }, hydrateChildren) {
|
|
645
|
-
function
|
|
645
|
+
function hydrateAnchor(target, targetNode) {
|
|
646
|
+
let targetAnchor = targetNode;
|
|
647
|
+
while (targetAnchor) {
|
|
648
|
+
if (targetAnchor && targetAnchor.nodeType === 8) {
|
|
649
|
+
if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
|
|
650
|
+
else if (targetAnchor.data === "teleport anchor") {
|
|
651
|
+
vnode.targetAnchor = targetAnchor;
|
|
652
|
+
target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
|
|
653
|
+
break;
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
targetAnchor = nextSibling(targetAnchor);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
function hydrateDisabledTeleport(node, vnode) {
|
|
646
660
|
vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
647
|
-
vnode.targetStart = targetStart;
|
|
648
|
-
vnode.targetAnchor = targetAnchor;
|
|
649
661
|
}
|
|
650
662
|
const target = vnode.target = resolveTarget(vnode.props, querySelector);
|
|
651
663
|
const disabled = isTeleportDisabled(vnode.props);
|
|
652
664
|
if (target) {
|
|
653
665
|
const targetNode = target._lpa || target.firstChild;
|
|
654
|
-
if (vnode.shapeFlag & 16) if (disabled)
|
|
655
|
-
|
|
666
|
+
if (vnode.shapeFlag & 16) if (disabled) {
|
|
667
|
+
hydrateDisabledTeleport(node, vnode);
|
|
668
|
+
hydrateAnchor(target, targetNode);
|
|
669
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
670
|
+
} else {
|
|
656
671
|
vnode.anchor = nextSibling(node);
|
|
657
|
-
|
|
658
|
-
while (targetAnchor) {
|
|
659
|
-
if (targetAnchor && targetAnchor.nodeType === 8) {
|
|
660
|
-
if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
|
|
661
|
-
else if (targetAnchor.data === "teleport anchor") {
|
|
662
|
-
vnode.targetAnchor = targetAnchor;
|
|
663
|
-
target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
|
|
664
|
-
break;
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
targetAnchor = nextSibling(targetAnchor);
|
|
668
|
-
}
|
|
672
|
+
hydrateAnchor(target, targetNode);
|
|
669
673
|
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
670
674
|
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
671
675
|
}
|
|
672
676
|
updateCssVars(vnode, disabled);
|
|
673
677
|
} else if (disabled) {
|
|
674
|
-
if (vnode.shapeFlag & 16)
|
|
678
|
+
if (vnode.shapeFlag & 16) {
|
|
679
|
+
hydrateDisabledTeleport(node, vnode);
|
|
680
|
+
vnode.targetStart = node;
|
|
681
|
+
vnode.targetAnchor = nextSibling(node);
|
|
682
|
+
}
|
|
675
683
|
}
|
|
676
684
|
return vnode.anchor && nextSibling(vnode.anchor);
|
|
677
685
|
}
|
|
@@ -694,13 +702,13 @@ function updateCssVars(vnode, isDisabled) {
|
|
|
694
702
|
ctx.ut();
|
|
695
703
|
}
|
|
696
704
|
}
|
|
697
|
-
function prepareAnchor(target, vnode, createText, insert) {
|
|
705
|
+
function prepareAnchor(target, vnode, createText, insert, anchor = null) {
|
|
698
706
|
const targetStart = vnode.targetStart = createText("");
|
|
699
707
|
const targetAnchor = vnode.targetAnchor = createText("");
|
|
700
708
|
targetStart[TeleportEndKey] = targetAnchor;
|
|
701
709
|
if (target) {
|
|
702
|
-
insert(targetStart, target);
|
|
703
|
-
insert(targetAnchor, target);
|
|
710
|
+
insert(targetStart, target, anchor);
|
|
711
|
+
insert(targetAnchor, target, anchor);
|
|
704
712
|
}
|
|
705
713
|
return targetAnchor;
|
|
706
714
|
}
|
|
@@ -873,7 +881,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
873
881
|
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
874
882
|
} else return;
|
|
875
883
|
let called = false;
|
|
876
|
-
|
|
884
|
+
el[enterCbKey] = (cancelled) => {
|
|
877
885
|
if (called) return;
|
|
878
886
|
called = true;
|
|
879
887
|
if (cancelled) callHook(cancelHook, [el]);
|
|
@@ -881,6 +889,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
881
889
|
if (hooks.delayedLeave) hooks.delayedLeave();
|
|
882
890
|
el[enterCbKey] = void 0;
|
|
883
891
|
};
|
|
892
|
+
const done = el[enterCbKey].bind(null, false);
|
|
884
893
|
if (hook) callAsyncHook(hook, [el, done]);
|
|
885
894
|
else done();
|
|
886
895
|
},
|
|
@@ -889,7 +898,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
889
898
|
if (state.isUnmounting) return remove();
|
|
890
899
|
callHook(onBeforeLeave, [el]);
|
|
891
900
|
let called = false;
|
|
892
|
-
|
|
901
|
+
el[leaveCbKey] = (cancelled) => {
|
|
893
902
|
if (called) return;
|
|
894
903
|
called = true;
|
|
895
904
|
remove();
|
|
@@ -899,6 +908,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
899
908
|
unsetLeavingNodeCache(el);
|
|
900
909
|
};
|
|
901
910
|
setLeavingNodeCache(el);
|
|
911
|
+
const done = el[leaveCbKey].bind(null, false);
|
|
902
912
|
if (onLeave) callAsyncHook(onLeave, [el, done]);
|
|
903
913
|
else done();
|
|
904
914
|
},
|
|
@@ -1000,6 +1010,10 @@ function useTemplateRef(key) {
|
|
|
1000
1010
|
}
|
|
1001
1011
|
return r;
|
|
1002
1012
|
}
|
|
1013
|
+
function isTemplateRefKey(refs, key) {
|
|
1014
|
+
let desc;
|
|
1015
|
+
return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
|
|
1016
|
+
}
|
|
1003
1017
|
|
|
1004
1018
|
//#endregion
|
|
1005
1019
|
//#region packages/runtime-core/src/rendererTemplateRef.ts
|
|
@@ -1022,8 +1036,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1022
1036
|
const oldRef = oldRawRef && oldRawRef.r;
|
|
1023
1037
|
const refs = owner.refs === _vue_shared.EMPTY_OBJ ? owner.refs = {} : owner.refs;
|
|
1024
1038
|
const setupState = owner.setupState;
|
|
1025
|
-
const canSetSetupRef = createCanSetSetupRefChecker(setupState);
|
|
1026
|
-
const canSetRef = (ref) => {
|
|
1039
|
+
const canSetSetupRef = createCanSetSetupRefChecker(setupState, refs);
|
|
1040
|
+
const canSetRef = (ref, key) => {
|
|
1041
|
+
if (key && isTemplateRefKey(refs, key)) return false;
|
|
1027
1042
|
return true;
|
|
1028
1043
|
};
|
|
1029
1044
|
if (oldRef != null && oldRef !== ref) {
|
|
@@ -1032,8 +1047,8 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1032
1047
|
refs[oldRef] = null;
|
|
1033
1048
|
if (canSetSetupRef(oldRef)) setupState[oldRef] = null;
|
|
1034
1049
|
} else if ((0, _vue_reactivity.isRef)(oldRef)) {
|
|
1035
|
-
if (canSetRef(oldRef)) oldRef.value = null;
|
|
1036
1050
|
const oldRawRefAtom = oldRawRef;
|
|
1051
|
+
if (canSetRef(oldRef, oldRawRefAtom.k)) oldRef.value = null;
|
|
1037
1052
|
if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
|
|
1038
1053
|
}
|
|
1039
1054
|
}
|
|
@@ -1051,7 +1066,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1051
1066
|
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
1052
1067
|
} else {
|
|
1053
1068
|
const newVal = [refValue];
|
|
1054
|
-
if (canSetRef(ref)) ref.value = newVal;
|
|
1069
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
1055
1070
|
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
1056
1071
|
}
|
|
1057
1072
|
else if (!existing.includes(refValue)) existing.push(refValue);
|
|
@@ -1059,7 +1074,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1059
1074
|
refs[ref] = value;
|
|
1060
1075
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
1061
1076
|
} else if (_isRef) {
|
|
1062
|
-
if (canSetRef(ref)) ref.value = value;
|
|
1077
|
+
if (canSetRef(ref, rawRef.k)) ref.value = value;
|
|
1063
1078
|
if (rawRef.k) refs[rawRef.k] = value;
|
|
1064
1079
|
}
|
|
1065
1080
|
};
|
|
@@ -1077,9 +1092,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1077
1092
|
}
|
|
1078
1093
|
}
|
|
1079
1094
|
}
|
|
1080
|
-
function createCanSetSetupRefChecker(setupState) {
|
|
1095
|
+
function createCanSetSetupRefChecker(setupState, refs) {
|
|
1081
1096
|
const rawSetupState = (0, _vue_reactivity.toRaw)(setupState);
|
|
1082
1097
|
return setupState === void 0 || setupState === _vue_shared.EMPTY_OBJ ? _vue_shared.NO : (key) => {
|
|
1098
|
+
if (isTemplateRefKey(refs, key)) return false;
|
|
1083
1099
|
return (0, _vue_shared.hasOwn)(rawSetupState, key);
|
|
1084
1100
|
};
|
|
1085
1101
|
}
|
|
@@ -2792,7 +2808,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
|
|
|
2792
2808
|
const dynamicProps = nextVNode.dynamicProps;
|
|
2793
2809
|
for (let i = 0; i < dynamicProps.length; i++) {
|
|
2794
2810
|
const key = dynamicProps[i];
|
|
2795
|
-
if (nextProps
|
|
2811
|
+
if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) return true;
|
|
2796
2812
|
}
|
|
2797
2813
|
}
|
|
2798
2814
|
} else {
|
|
@@ -2811,10 +2827,16 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
|
|
|
2811
2827
|
if (nextKeys.length !== Object.keys(prevProps).length) return true;
|
|
2812
2828
|
for (let i = 0; i < nextKeys.length; i++) {
|
|
2813
2829
|
const key = nextKeys[i];
|
|
2814
|
-
if (nextProps
|
|
2830
|
+
if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) return true;
|
|
2815
2831
|
}
|
|
2816
2832
|
return false;
|
|
2817
2833
|
}
|
|
2834
|
+
function hasPropValueChanged(nextProps, prevProps, key) {
|
|
2835
|
+
const nextProp = nextProps[key];
|
|
2836
|
+
const prevProp = prevProps[key];
|
|
2837
|
+
if (key === "style" && (0, _vue_shared.isObject)(nextProp) && (0, _vue_shared.isObject)(prevProp)) return !(0, _vue_shared.looseEqual)(nextProp, prevProp);
|
|
2838
|
+
return nextProp !== prevProp;
|
|
2839
|
+
}
|
|
2818
2840
|
function updateHOCHostEl({ vnode, parent }, el) {
|
|
2819
2841
|
while (parent && !parent.vapor) {
|
|
2820
2842
|
const root = parent.subTree;
|
|
@@ -3442,7 +3464,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
3442
3464
|
updateComponentPreRender(instance, next, optimized);
|
|
3443
3465
|
}
|
|
3444
3466
|
nonHydratedAsyncRoot.asyncDep.then(() => {
|
|
3445
|
-
|
|
3467
|
+
queuePostRenderEffect(() => {
|
|
3468
|
+
if (!instance.isUnmounted) instance.update();
|
|
3469
|
+
}, void 0, parentSuspense);
|
|
3446
3470
|
});
|
|
3447
3471
|
return;
|
|
3448
3472
|
}
|
|
@@ -3830,8 +3854,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
3830
3854
|
}
|
|
3831
3855
|
if (!shallow && c2.patchFlag !== -2) traverseStaticChildren(c1, c2);
|
|
3832
3856
|
}
|
|
3833
|
-
if (c2.type === Text)
|
|
3834
|
-
|
|
3857
|
+
if (c2.type === Text) {
|
|
3858
|
+
if (c2.patchFlag === -1) c2 = ch2[i] = cloneIfMounted(c2);
|
|
3859
|
+
c2.el = c1.el;
|
|
3860
|
+
}
|
|
3835
3861
|
if (c2.type === Comment && !c2.el) c2.el = c1.el;
|
|
3836
3862
|
}
|
|
3837
3863
|
}
|
|
@@ -4787,7 +4813,7 @@ function isMemoSame(cached, memo) {
|
|
|
4787
4813
|
|
|
4788
4814
|
//#endregion
|
|
4789
4815
|
//#region packages/runtime-core/src/index.ts
|
|
4790
|
-
const version = "3.6.0-beta.
|
|
4816
|
+
const version = "3.6.0-beta.6";
|
|
4791
4817
|
const warn = _vue_shared.NOOP;
|
|
4792
4818
|
/**
|
|
4793
4819
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/runtime-core v3.6.0-beta.
|
|
2
|
+
* @vue/runtime-core v3.6.0-beta.6
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
6
6
|
import { EffectScope, EffectScope as EffectScope$1, ReactiveEffect, ReactiveEffect as ReactiveEffect$1, TrackOpTypes, TriggerOpTypes, WatcherEffect, computed as computed$1, customRef, customRef as customRef$1, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isProxy as isProxy$1, isReactive, isReactive as isReactive$1, isReadonly, isReadonly as isReadonly$1, isRef, isRef as isRef$1, isShallow, isShallow as isShallow$1, markRaw, markRaw as markRaw$1, onScopeDispose, onWatcherCleanup, proxyRefs, proxyRefs as proxyRefs$1, reactive, reactive as reactive$1, readonly, readonly as readonly$1, ref, ref as ref$1, setActiveSub, setCurrentScope, shallowReactive, shallowReactive as shallowReactive$1, shallowReadArray, shallowReadonly, shallowReadonly as shallowReadonly$1, shallowRef, shallowRef as shallowRef$1, stop, toRaw, toRaw as toRaw$1, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref } from "@vue/reactivity";
|
|
7
|
-
import { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, camelize, camelize as camelize$1, capitalize, capitalize as capitalize$1, def, extend, getEscapedCssVarName, getGlobalThis, getModifierPropName, getSequence, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isBuiltInTag, isFunction, isGloballyAllowed, isKnownHtmlAttr, isKnownSvgAttr, isModelListener, isObject, isOn, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isString, isSymbol, looseToNumber, makeMap, normalizeClass, normalizeClass as normalizeClass$1, normalizeCssVarValue, normalizeProps, normalizeStyle, normalizeStyle as normalizeStyle$1, remove, stringifyStyle, toDisplayString, toHandlerKey, toHandlerKey as toHandlerKey$1, toNumber, toRawType } from "@vue/shared";
|
|
7
|
+
import { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, camelize, camelize as camelize$1, capitalize, capitalize as capitalize$1, def, extend, getEscapedCssVarName, getGlobalThis, getModifierPropName, getSequence, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isBuiltInTag, isFunction, isGloballyAllowed, isKnownHtmlAttr, isKnownSvgAttr, isModelListener, isObject, isOn, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isString, isSymbol, looseEqual, looseToNumber, makeMap, normalizeClass, normalizeClass as normalizeClass$1, normalizeCssVarValue, normalizeProps, normalizeStyle, normalizeStyle as normalizeStyle$1, remove, stringifyStyle, toDisplayString, toHandlerKey, toHandlerKey as toHandlerKey$1, toNumber, toRawType } from "@vue/shared";
|
|
8
8
|
|
|
9
9
|
//#region packages/runtime-core/src/warning.ts
|
|
10
10
|
const stack = [];
|
|
@@ -987,36 +987,44 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
|
|
|
987
987
|
if (isReorder) insert(anchor, container, parentAnchor);
|
|
988
988
|
}
|
|
989
989
|
function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector, insert, createText } }, hydrateChildren) {
|
|
990
|
-
function
|
|
990
|
+
function hydrateAnchor(target, targetNode) {
|
|
991
|
+
let targetAnchor = targetNode;
|
|
992
|
+
while (targetAnchor) {
|
|
993
|
+
if (targetAnchor && targetAnchor.nodeType === 8) {
|
|
994
|
+
if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
|
|
995
|
+
else if (targetAnchor.data === "teleport anchor") {
|
|
996
|
+
vnode.targetAnchor = targetAnchor;
|
|
997
|
+
target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
|
|
998
|
+
break;
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
targetAnchor = nextSibling(targetAnchor);
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
function hydrateDisabledTeleport(node, vnode) {
|
|
991
1005
|
vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
992
|
-
vnode.targetStart = targetStart;
|
|
993
|
-
vnode.targetAnchor = targetAnchor;
|
|
994
1006
|
}
|
|
995
1007
|
const target = vnode.target = resolveTarget(vnode.props, querySelector);
|
|
996
1008
|
const disabled = isTeleportDisabled(vnode.props);
|
|
997
1009
|
if (target) {
|
|
998
1010
|
const targetNode = target._lpa || target.firstChild;
|
|
999
|
-
if (vnode.shapeFlag & 16) if (disabled)
|
|
1000
|
-
|
|
1011
|
+
if (vnode.shapeFlag & 16) if (disabled) {
|
|
1012
|
+
hydrateDisabledTeleport(node, vnode);
|
|
1013
|
+
hydrateAnchor(target, targetNode);
|
|
1014
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
1015
|
+
} else {
|
|
1001
1016
|
vnode.anchor = nextSibling(node);
|
|
1002
|
-
|
|
1003
|
-
while (targetAnchor) {
|
|
1004
|
-
if (targetAnchor && targetAnchor.nodeType === 8) {
|
|
1005
|
-
if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
|
|
1006
|
-
else if (targetAnchor.data === "teleport anchor") {
|
|
1007
|
-
vnode.targetAnchor = targetAnchor;
|
|
1008
|
-
target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
|
|
1009
|
-
break;
|
|
1010
|
-
}
|
|
1011
|
-
}
|
|
1012
|
-
targetAnchor = nextSibling(targetAnchor);
|
|
1013
|
-
}
|
|
1017
|
+
hydrateAnchor(target, targetNode);
|
|
1014
1018
|
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
1015
1019
|
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
1016
1020
|
}
|
|
1017
1021
|
updateCssVars(vnode, disabled);
|
|
1018
1022
|
} else if (disabled) {
|
|
1019
|
-
if (vnode.shapeFlag & 16)
|
|
1023
|
+
if (vnode.shapeFlag & 16) {
|
|
1024
|
+
hydrateDisabledTeleport(node, vnode);
|
|
1025
|
+
vnode.targetStart = node;
|
|
1026
|
+
vnode.targetAnchor = nextSibling(node);
|
|
1027
|
+
}
|
|
1020
1028
|
}
|
|
1021
1029
|
return vnode.anchor && nextSibling(vnode.anchor);
|
|
1022
1030
|
}
|
|
@@ -1039,13 +1047,13 @@ function updateCssVars(vnode, isDisabled) {
|
|
|
1039
1047
|
ctx.ut();
|
|
1040
1048
|
}
|
|
1041
1049
|
}
|
|
1042
|
-
function prepareAnchor(target, vnode, createText, insert) {
|
|
1050
|
+
function prepareAnchor(target, vnode, createText, insert, anchor = null) {
|
|
1043
1051
|
const targetStart = vnode.targetStart = createText("");
|
|
1044
1052
|
const targetAnchor = vnode.targetAnchor = createText("");
|
|
1045
1053
|
targetStart[TeleportEndKey] = targetAnchor;
|
|
1046
1054
|
if (target) {
|
|
1047
|
-
insert(targetStart, target);
|
|
1048
|
-
insert(targetAnchor, target);
|
|
1055
|
+
insert(targetStart, target, anchor);
|
|
1056
|
+
insert(targetAnchor, target, anchor);
|
|
1049
1057
|
}
|
|
1050
1058
|
return targetAnchor;
|
|
1051
1059
|
}
|
|
@@ -1224,7 +1232,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
1224
1232
|
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
1225
1233
|
} else return;
|
|
1226
1234
|
let called = false;
|
|
1227
|
-
|
|
1235
|
+
el[enterCbKey] = (cancelled) => {
|
|
1228
1236
|
if (called) return;
|
|
1229
1237
|
called = true;
|
|
1230
1238
|
if (cancelled) callHook(cancelHook, [el]);
|
|
@@ -1232,6 +1240,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
1232
1240
|
if (hooks.delayedLeave) hooks.delayedLeave();
|
|
1233
1241
|
el[enterCbKey] = void 0;
|
|
1234
1242
|
};
|
|
1243
|
+
const done = el[enterCbKey].bind(null, false);
|
|
1235
1244
|
if (hook) callAsyncHook(hook, [el, done]);
|
|
1236
1245
|
else done();
|
|
1237
1246
|
},
|
|
@@ -1240,7 +1249,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
1240
1249
|
if (state.isUnmounting) return remove();
|
|
1241
1250
|
callHook(onBeforeLeave, [el]);
|
|
1242
1251
|
let called = false;
|
|
1243
|
-
|
|
1252
|
+
el[leaveCbKey] = (cancelled) => {
|
|
1244
1253
|
if (called) return;
|
|
1245
1254
|
called = true;
|
|
1246
1255
|
remove();
|
|
@@ -1250,6 +1259,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
1250
1259
|
unsetLeavingNodeCache(el);
|
|
1251
1260
|
};
|
|
1252
1261
|
setLeavingNodeCache(el);
|
|
1262
|
+
const done = el[leaveCbKey].bind(null, false);
|
|
1253
1263
|
if (onLeave) callAsyncHook(onLeave, [el, done]);
|
|
1254
1264
|
else done();
|
|
1255
1265
|
},
|
|
@@ -1347,8 +1357,7 @@ function useTemplateRef(key) {
|
|
|
1347
1357
|
const r = shallowRef$1(null);
|
|
1348
1358
|
if (i) {
|
|
1349
1359
|
const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
|
|
1350
|
-
|
|
1351
|
-
if (!!(process.env.NODE_ENV !== "production") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) warn$1(`useTemplateRef('${key}') already exists.`);
|
|
1360
|
+
if (!!(process.env.NODE_ENV !== "production") && isTemplateRefKey(refs, key)) warn$1(`useTemplateRef('${key}') already exists.`);
|
|
1352
1361
|
else Object.defineProperty(refs, key, {
|
|
1353
1362
|
enumerable: true,
|
|
1354
1363
|
get: () => r.value,
|
|
@@ -1359,6 +1368,10 @@ function useTemplateRef(key) {
|
|
|
1359
1368
|
if (!!(process.env.NODE_ENV !== "production")) knownTemplateRefs.add(ret);
|
|
1360
1369
|
return ret;
|
|
1361
1370
|
}
|
|
1371
|
+
function isTemplateRefKey(refs, key) {
|
|
1372
|
+
let desc;
|
|
1373
|
+
return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
|
|
1374
|
+
}
|
|
1362
1375
|
|
|
1363
1376
|
//#endregion
|
|
1364
1377
|
//#region packages/runtime-core/src/rendererTemplateRef.ts
|
|
@@ -1385,9 +1398,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1385
1398
|
const oldRef = oldRawRef && oldRawRef.r;
|
|
1386
1399
|
const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
|
|
1387
1400
|
const setupState = owner.setupState;
|
|
1388
|
-
const canSetSetupRef = createCanSetSetupRefChecker(setupState);
|
|
1389
|
-
const canSetRef = (ref) => {
|
|
1390
|
-
|
|
1401
|
+
const canSetSetupRef = createCanSetSetupRefChecker(setupState, refs);
|
|
1402
|
+
const canSetRef = (ref, key) => {
|
|
1403
|
+
if (!!(process.env.NODE_ENV !== "production") && knownTemplateRefs.has(ref)) return false;
|
|
1404
|
+
if (key && isTemplateRefKey(refs, key)) return false;
|
|
1405
|
+
return true;
|
|
1391
1406
|
};
|
|
1392
1407
|
if (oldRef != null && oldRef !== ref) {
|
|
1393
1408
|
invalidatePendingSetRef(oldRawRef);
|
|
@@ -1395,8 +1410,8 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1395
1410
|
refs[oldRef] = null;
|
|
1396
1411
|
if (canSetSetupRef(oldRef)) setupState[oldRef] = null;
|
|
1397
1412
|
} else if (isRef$1(oldRef)) {
|
|
1398
|
-
if (canSetRef(oldRef)) oldRef.value = null;
|
|
1399
1413
|
const oldRawRefAtom = oldRawRef;
|
|
1414
|
+
if (canSetRef(oldRef, oldRawRefAtom.k)) oldRef.value = null;
|
|
1400
1415
|
if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
|
|
1401
1416
|
}
|
|
1402
1417
|
}
|
|
@@ -1414,7 +1429,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1414
1429
|
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
1415
1430
|
} else {
|
|
1416
1431
|
const newVal = [refValue];
|
|
1417
|
-
if (canSetRef(ref)) ref.value = newVal;
|
|
1432
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
1418
1433
|
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
1419
1434
|
}
|
|
1420
1435
|
else if (!existing.includes(refValue)) existing.push(refValue);
|
|
@@ -1422,7 +1437,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1422
1437
|
refs[ref] = value;
|
|
1423
1438
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
1424
1439
|
} else if (_isRef) {
|
|
1425
|
-
if (canSetRef(ref)) ref.value = value;
|
|
1440
|
+
if (canSetRef(ref, rawRef.k)) ref.value = value;
|
|
1426
1441
|
if (rawRef.k) refs[rawRef.k] = value;
|
|
1427
1442
|
} else if (!!(process.env.NODE_ENV !== "production")) warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
|
|
1428
1443
|
};
|
|
@@ -1440,13 +1455,14 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
1440
1455
|
} else if (!!(process.env.NODE_ENV !== "production")) warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
|
|
1441
1456
|
}
|
|
1442
1457
|
}
|
|
1443
|
-
function createCanSetSetupRefChecker(setupState) {
|
|
1458
|
+
function createCanSetSetupRefChecker(setupState, refs) {
|
|
1444
1459
|
const rawSetupState = toRaw$1(setupState);
|
|
1445
1460
|
return setupState === void 0 || setupState === EMPTY_OBJ ? NO : (key) => {
|
|
1446
1461
|
if (!!(process.env.NODE_ENV !== "production")) {
|
|
1447
1462
|
if (hasOwn(rawSetupState, key) && !isRef$1(rawSetupState[key])) warn$1(`Template ref "${key}" used on a non-ref value. It will not work in the production build.`);
|
|
1448
1463
|
if (knownTemplateRefs.has(rawSetupState[key])) return false;
|
|
1449
1464
|
}
|
|
1465
|
+
if (isTemplateRefKey(refs, key)) return false;
|
|
1450
1466
|
return hasOwn(rawSetupState, key);
|
|
1451
1467
|
};
|
|
1452
1468
|
}
|
|
@@ -3586,7 +3602,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
|
|
|
3586
3602
|
const dynamicProps = nextVNode.dynamicProps;
|
|
3587
3603
|
for (let i = 0; i < dynamicProps.length; i++) {
|
|
3588
3604
|
const key = dynamicProps[i];
|
|
3589
|
-
if (nextProps
|
|
3605
|
+
if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) return true;
|
|
3590
3606
|
}
|
|
3591
3607
|
}
|
|
3592
3608
|
} else {
|
|
@@ -3605,10 +3621,16 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
|
|
|
3605
3621
|
if (nextKeys.length !== Object.keys(prevProps).length) return true;
|
|
3606
3622
|
for (let i = 0; i < nextKeys.length; i++) {
|
|
3607
3623
|
const key = nextKeys[i];
|
|
3608
|
-
if (nextProps
|
|
3624
|
+
if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) return true;
|
|
3609
3625
|
}
|
|
3610
3626
|
return false;
|
|
3611
3627
|
}
|
|
3628
|
+
function hasPropValueChanged(nextProps, prevProps, key) {
|
|
3629
|
+
const nextProp = nextProps[key];
|
|
3630
|
+
const prevProp = prevProps[key];
|
|
3631
|
+
if (key === "style" && isObject(nextProp) && isObject(prevProp)) return !looseEqual(nextProp, prevProp);
|
|
3632
|
+
return nextProp !== prevProp;
|
|
3633
|
+
}
|
|
3612
3634
|
function updateHOCHostEl({ vnode, parent }, el) {
|
|
3613
3635
|
while (parent && !parent.vapor) {
|
|
3614
3636
|
const root = parent.subTree;
|
|
@@ -4146,13 +4168,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
4146
4168
|
if (n1 == null) hostInsert(n2.el = hostCreateText(n2.children), container, anchor);
|
|
4147
4169
|
else {
|
|
4148
4170
|
const el = n2.el = n1.el;
|
|
4149
|
-
if (n2.children !== n1.children)
|
|
4150
|
-
const childNodes = container.childNodes;
|
|
4151
|
-
const newChild = hostCreateText(n2.children);
|
|
4152
|
-
const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
|
|
4153
|
-
hostInsert(newChild, container, oldChild);
|
|
4154
|
-
hostRemove(oldChild);
|
|
4155
|
-
} else hostSetText(el, n2.children);
|
|
4171
|
+
if (n2.children !== n1.children) hostSetText(el, n2.children);
|
|
4156
4172
|
}
|
|
4157
4173
|
};
|
|
4158
4174
|
const processCommentNode = (n1, n2, container, anchor) => {
|
|
@@ -4497,7 +4513,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
4497
4513
|
updateComponentPreRender(instance, next, optimized);
|
|
4498
4514
|
}
|
|
4499
4515
|
nonHydratedAsyncRoot.asyncDep.then(() => {
|
|
4500
|
-
|
|
4516
|
+
queuePostRenderEffect(() => {
|
|
4517
|
+
if (!instance.isUnmounted) instance.update();
|
|
4518
|
+
}, void 0, parentSuspense);
|
|
4501
4519
|
});
|
|
4502
4520
|
return;
|
|
4503
4521
|
}
|
|
@@ -4906,8 +4924,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
4906
4924
|
}
|
|
4907
4925
|
if (!shallow && c2.patchFlag !== -2) traverseStaticChildren(c1, c2);
|
|
4908
4926
|
}
|
|
4909
|
-
if (c2.type === Text)
|
|
4910
|
-
|
|
4927
|
+
if (c2.type === Text) {
|
|
4928
|
+
if (c2.patchFlag === -1) c2 = ch2[i] = cloneIfMounted(c2);
|
|
4929
|
+
c2.el = c1.el;
|
|
4930
|
+
}
|
|
4911
4931
|
if (c2.type === Comment && !c2.el) c2.el = c1.el;
|
|
4912
4932
|
if (!!(process.env.NODE_ENV !== "production")) c2.el && (c2.el.__vnode = c2);
|
|
4913
4933
|
}
|
|
@@ -6178,7 +6198,7 @@ function isMemoSame(cached, memo) {
|
|
|
6178
6198
|
|
|
6179
6199
|
//#endregion
|
|
6180
6200
|
//#region packages/runtime-core/src/index.ts
|
|
6181
|
-
const version = "3.6.0-beta.
|
|
6201
|
+
const version = "3.6.0-beta.6";
|
|
6182
6202
|
const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
|
|
6183
6203
|
/**
|
|
6184
6204
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -6215,4 +6235,4 @@ const compatUtils = null;
|
|
|
6215
6235
|
const DeprecationTypes = null;
|
|
6216
6236
|
|
|
6217
6237
|
//#endregion
|
|
6218
|
-
export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, TriggerOpTypes, activate, assertNumber, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureVaporSlotFallback, expose, flushOnAppMount, getAttributeMismatch, getComponentName, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initFeatureFlags, inject, isAsyncWrapper, isEmitListener, isHydrating, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isVNode, isValidHtmlOrSvgAttribute, leaveCbKey, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, normalizeClass, normalizeProps, normalizeRef, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, setBlockTracking, setCurrentInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, useAsyncComponentState, useAttrs, useId, useInstanceOption, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
|
|
6238
|
+
export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, TriggerOpTypes, activate, assertNumber, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureVaporSlotFallback, expose, flushOnAppMount, getAttributeMismatch, getComponentName, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initFeatureFlags, inject, isAsyncWrapper, isEmitListener, isHydrating, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isVNode, isValidHtmlOrSvgAttribute, knownTemplateRefs, leaveCbKey, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, normalizeClass, normalizeProps, normalizeRef, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, setBlockTracking, setCurrentInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, useAsyncComponentState, useAttrs, useId, useInstanceOption, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/runtime-core",
|
|
3
|
-
"version": "3.6.0-beta.
|
|
3
|
+
"version": "3.6.0-beta.6",
|
|
4
4
|
"description": "@vue/runtime-core",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/runtime-core.esm-bundler.js",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@vue/shared": "3.6.0-beta.
|
|
50
|
-
"@vue/reactivity": "3.6.0-beta.
|
|
49
|
+
"@vue/shared": "3.6.0-beta.6",
|
|
50
|
+
"@vue/reactivity": "3.6.0-beta.6"
|
|
51
51
|
}
|
|
52
52
|
}
|