vue 2.7.1 → 2.7.4
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/vue.common.dev.js +133 -61
- package/dist/vue.common.prod.js +3 -3
- package/dist/vue.esm.browser.js +133 -62
- package/dist/vue.esm.browser.min.js +3 -3
- package/dist/vue.esm.js +135 -62
- package/dist/vue.js +135 -61
- package/dist/vue.min.js +3 -3
- package/dist/vue.runtime.common.dev.js +133 -61
- package/dist/vue.runtime.common.prod.js +3 -3
- package/dist/vue.runtime.esm.js +135 -62
- package/dist/vue.runtime.js +135 -61
- package/dist/vue.runtime.min.js +3 -3
- package/dist/vue.runtime.mjs +72 -8604
- package/package.json +2 -2
- package/packages/compiler-sfc/dist/compiler-sfc.js +56 -55
- package/packages/compiler-sfc/package.json +1 -1
- package/packages/compiler-sfc/src/parseComponent.ts +9 -1
- package/packages/compiler-sfc/test/parseComponent.spec.ts +6 -7
- package/src/core/instance/render-helpers/render-static.ts +1 -1
- package/src/core/observer/index.ts +54 -55
- package/src/core/util/next-tick.ts +2 -1
- package/src/core/vdom/modules/directives.ts +2 -2
- package/src/shared/constants.ts +3 -1
- package/src/v3/apiAsyncComponent.ts +117 -0
- package/src/v3/apiWatch.ts +2 -2
- package/src/v3/index.ts +6 -0
- package/src/v3/reactivity/reactive.ts +13 -2
- package/src/v3/reactivity/ref.ts +6 -2
- package/types/common.d.ts +6 -0
- package/types/index.d.ts +7 -4
- package/types/jsx.d.ts +16 -2
- package/types/options.d.ts +8 -2
- package/types/v3-component-options.d.ts +162 -33
- package/types/v3-component-props.d.ts +19 -20
- package/types/v3-component-public-instance.d.ts +234 -0
- package/types/v3-define-async-component.d.ts +26 -0
- package/types/v3-define-component.d.ts +94 -12
- package/types/v3-generated.d.ts +26 -1
- package/types/v3-setup-context.d.ts +0 -6
- package/types/vnode.d.ts +15 -0
- package/types/vue.d.ts +17 -10
- package/types/v3-component-proxy.d.ts +0 -189
package/dist/vue.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vue.js v2.7.
|
|
2
|
+
* Vue.js v2.7.4
|
|
3
3
|
* (c) 2014-2022 Evan You
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -340,7 +340,9 @@
|
|
|
340
340
|
'activated',
|
|
341
341
|
'deactivated',
|
|
342
342
|
'errorCaptured',
|
|
343
|
-
'serverPrefetch'
|
|
343
|
+
'serverPrefetch',
|
|
344
|
+
'renderTracked',
|
|
345
|
+
'renderTriggered'
|
|
344
346
|
];
|
|
345
347
|
|
|
346
348
|
var config = {
|
|
@@ -892,7 +894,7 @@
|
|
|
892
894
|
warn$2("Target is already a ".concat(existingOb.shallow ? "" : "non-", "shallow reactive object, and cannot be converted to ").concat(shallow ? "" : "non-", "shallow."));
|
|
893
895
|
}
|
|
894
896
|
}
|
|
895
|
-
var ob = observe(target, shallow);
|
|
897
|
+
var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);
|
|
896
898
|
if (!ob) {
|
|
897
899
|
if (target == null || isPrimitive(target)) {
|
|
898
900
|
warn$2("value cannot be made reactive: ".concat(String(target)));
|
|
@@ -954,7 +956,7 @@
|
|
|
954
956
|
var ref = {};
|
|
955
957
|
def(ref, RefFlag, true);
|
|
956
958
|
def(ref, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
|
|
957
|
-
ref
|
|
959
|
+
def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));
|
|
958
960
|
return ref;
|
|
959
961
|
}
|
|
960
962
|
function triggerRef(ref) {
|
|
@@ -2586,7 +2588,7 @@
|
|
|
2586
2588
|
return tree;
|
|
2587
2589
|
}
|
|
2588
2590
|
// otherwise, render a fresh tree.
|
|
2589
|
-
tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy,
|
|
2591
|
+
tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates
|
|
2590
2592
|
);
|
|
2591
2593
|
markStatic$1(tree, "__static__".concat(index), false);
|
|
2592
2594
|
return tree;
|
|
@@ -4371,8 +4373,8 @@
|
|
|
4371
4373
|
else {
|
|
4372
4374
|
// pre
|
|
4373
4375
|
watcher.update = function () {
|
|
4374
|
-
if (instance && instance === currentInstance) {
|
|
4375
|
-
// pre-watcher triggered
|
|
4376
|
+
if (instance && instance === currentInstance && !instance._isMounted) {
|
|
4377
|
+
// pre-watcher triggered before
|
|
4376
4378
|
var buffer = instance._preWatchers || (instance._preWatchers = []);
|
|
4377
4379
|
if (buffer.indexOf(watcher) < 0)
|
|
4378
4380
|
buffer.push(watcher);
|
|
@@ -4632,6 +4634,78 @@
|
|
|
4632
4634
|
});
|
|
4633
4635
|
}
|
|
4634
4636
|
|
|
4637
|
+
/**
|
|
4638
|
+
* v3-compatible async component API.
|
|
4639
|
+
* @internal the type is manually declared in <root>/types/v3-define-async-component.d.ts
|
|
4640
|
+
* because it relies on existing manual types
|
|
4641
|
+
*/
|
|
4642
|
+
function defineAsyncComponent(source) {
|
|
4643
|
+
if (isFunction(source)) {
|
|
4644
|
+
source = { loader: source };
|
|
4645
|
+
}
|
|
4646
|
+
var loader = source.loader, loadingComponent = source.loadingComponent, errorComponent = source.errorComponent, _a = source.delay, delay = _a === void 0 ? 200 : _a, timeout = source.timeout, // undefined = never times out
|
|
4647
|
+
_b = source.suspensible, // undefined = never times out
|
|
4648
|
+
suspensible = _b === void 0 ? false : _b, // in Vue 3 default is true
|
|
4649
|
+
userOnError = source.onError;
|
|
4650
|
+
if (suspensible) {
|
|
4651
|
+
warn$2("The suspensiblbe option for async components is not supported in Vue2. It is ignored.");
|
|
4652
|
+
}
|
|
4653
|
+
var pendingRequest = null;
|
|
4654
|
+
var retries = 0;
|
|
4655
|
+
var retry = function () {
|
|
4656
|
+
retries++;
|
|
4657
|
+
pendingRequest = null;
|
|
4658
|
+
return load();
|
|
4659
|
+
};
|
|
4660
|
+
var load = function () {
|
|
4661
|
+
var thisRequest;
|
|
4662
|
+
return (pendingRequest ||
|
|
4663
|
+
(thisRequest = pendingRequest =
|
|
4664
|
+
loader()
|
|
4665
|
+
.catch(function (err) {
|
|
4666
|
+
err = err instanceof Error ? err : new Error(String(err));
|
|
4667
|
+
if (userOnError) {
|
|
4668
|
+
return new Promise(function (resolve, reject) {
|
|
4669
|
+
var userRetry = function () { return resolve(retry()); };
|
|
4670
|
+
var userFail = function () { return reject(err); };
|
|
4671
|
+
userOnError(err, userRetry, userFail, retries + 1);
|
|
4672
|
+
});
|
|
4673
|
+
}
|
|
4674
|
+
else {
|
|
4675
|
+
throw err;
|
|
4676
|
+
}
|
|
4677
|
+
})
|
|
4678
|
+
.then(function (comp) {
|
|
4679
|
+
if (thisRequest !== pendingRequest && pendingRequest) {
|
|
4680
|
+
return pendingRequest;
|
|
4681
|
+
}
|
|
4682
|
+
if (!comp) {
|
|
4683
|
+
warn$2("Async component loader resolved to undefined. " +
|
|
4684
|
+
"If you are using retry(), make sure to return its return value.");
|
|
4685
|
+
}
|
|
4686
|
+
// interop module default
|
|
4687
|
+
if (comp &&
|
|
4688
|
+
(comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {
|
|
4689
|
+
comp = comp.default;
|
|
4690
|
+
}
|
|
4691
|
+
if (comp && !isObject(comp) && !isFunction(comp)) {
|
|
4692
|
+
throw new Error("Invalid async component load result: ".concat(comp));
|
|
4693
|
+
}
|
|
4694
|
+
return comp;
|
|
4695
|
+
})));
|
|
4696
|
+
};
|
|
4697
|
+
return function () {
|
|
4698
|
+
var component = load();
|
|
4699
|
+
return {
|
|
4700
|
+
component: component,
|
|
4701
|
+
delay: delay,
|
|
4702
|
+
timeout: timeout,
|
|
4703
|
+
error: errorComponent,
|
|
4704
|
+
loading: loadingComponent
|
|
4705
|
+
};
|
|
4706
|
+
};
|
|
4707
|
+
}
|
|
4708
|
+
|
|
4635
4709
|
function createLifeCycle(hookName) {
|
|
4636
4710
|
return function (fn, target) {
|
|
4637
4711
|
if (target === void 0) { target = currentInstance; }
|
|
@@ -4670,7 +4744,10 @@
|
|
|
4670
4744
|
var onRenderTracked = createLifeCycle('renderTracked');
|
|
4671
4745
|
var onRenderTriggered = createLifeCycle('renderTriggered');
|
|
4672
4746
|
|
|
4673
|
-
|
|
4747
|
+
/**
|
|
4748
|
+
* Note: also update dist/vue.runtime.mjs when adding new exports to this file.
|
|
4749
|
+
*/
|
|
4750
|
+
var version = '2.7.4';
|
|
4674
4751
|
/**
|
|
4675
4752
|
* @internal type is manually declared in <root>/types/v3-define-component.d.ts
|
|
4676
4753
|
*/
|
|
@@ -4722,6 +4799,7 @@
|
|
|
4722
4799
|
del: del,
|
|
4723
4800
|
useCssModule: useCssModule,
|
|
4724
4801
|
useCssVars: useCssVars,
|
|
4802
|
+
defineAsyncComponent: defineAsyncComponent,
|
|
4725
4803
|
onBeforeMount: onBeforeMount,
|
|
4726
4804
|
onMounted: onMounted,
|
|
4727
4805
|
onBeforeUpdate: onBeforeUpdate,
|
|
@@ -4746,6 +4824,13 @@
|
|
|
4746
4824
|
function toggleObserving(value) {
|
|
4747
4825
|
shouldObserve = value;
|
|
4748
4826
|
}
|
|
4827
|
+
// ssr mock dep
|
|
4828
|
+
var mockDep = {
|
|
4829
|
+
notify: noop,
|
|
4830
|
+
depend: noop,
|
|
4831
|
+
addSub: noop,
|
|
4832
|
+
removeSub: noop
|
|
4833
|
+
};
|
|
4749
4834
|
/**
|
|
4750
4835
|
* Observer class that is attached to each observed
|
|
4751
4836
|
* object. Once attached, the observer converts the target
|
|
@@ -4753,78 +4838,63 @@
|
|
|
4753
4838
|
* collect dependencies and dispatch updates.
|
|
4754
4839
|
*/
|
|
4755
4840
|
var Observer = /** @class */ (function () {
|
|
4756
|
-
function Observer(value, shallow) {
|
|
4841
|
+
function Observer(value, shallow, mock) {
|
|
4757
4842
|
if (shallow === void 0) { shallow = false; }
|
|
4843
|
+
if (mock === void 0) { mock = false; }
|
|
4758
4844
|
this.value = value;
|
|
4759
4845
|
this.shallow = shallow;
|
|
4846
|
+
this.mock = mock;
|
|
4760
4847
|
// this.value = value
|
|
4761
|
-
this.dep = new Dep();
|
|
4848
|
+
this.dep = mock ? mockDep : new Dep();
|
|
4762
4849
|
this.vmCount = 0;
|
|
4763
4850
|
def(value, '__ob__', this);
|
|
4764
4851
|
if (isArray(value)) {
|
|
4765
|
-
if (
|
|
4766
|
-
|
|
4767
|
-
|
|
4768
|
-
|
|
4769
|
-
|
|
4852
|
+
if (!mock) {
|
|
4853
|
+
if (hasProto) {
|
|
4854
|
+
value.__proto__ = arrayMethods;
|
|
4855
|
+
/* eslint-enable no-proto */
|
|
4856
|
+
}
|
|
4857
|
+
else {
|
|
4858
|
+
for (var i = 0, l = arrayKeys.length; i < l; i++) {
|
|
4859
|
+
var key = arrayKeys[i];
|
|
4860
|
+
def(value, key, arrayMethods[key]);
|
|
4861
|
+
}
|
|
4862
|
+
}
|
|
4770
4863
|
}
|
|
4771
4864
|
if (!shallow) {
|
|
4772
4865
|
this.observeArray(value);
|
|
4773
4866
|
}
|
|
4774
4867
|
}
|
|
4775
4868
|
else {
|
|
4776
|
-
|
|
4869
|
+
/**
|
|
4870
|
+
* Walk through all properties and convert them into
|
|
4871
|
+
* getter/setters. This method should only be called when
|
|
4872
|
+
* value type is Object.
|
|
4873
|
+
*/
|
|
4874
|
+
var keys = Object.keys(value);
|
|
4875
|
+
for (var i = 0; i < keys.length; i++) {
|
|
4876
|
+
var key = keys[i];
|
|
4877
|
+
defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);
|
|
4878
|
+
}
|
|
4777
4879
|
}
|
|
4778
4880
|
}
|
|
4779
|
-
/**
|
|
4780
|
-
* Walk through all properties and convert them into
|
|
4781
|
-
* getter/setters. This method should only be called when
|
|
4782
|
-
* value type is Object.
|
|
4783
|
-
*/
|
|
4784
|
-
Observer.prototype.walk = function (obj, shallow) {
|
|
4785
|
-
var keys = Object.keys(obj);
|
|
4786
|
-
for (var i = 0; i < keys.length; i++) {
|
|
4787
|
-
var key = keys[i];
|
|
4788
|
-
defineReactive(obj, key, NO_INIITIAL_VALUE, undefined, shallow);
|
|
4789
|
-
}
|
|
4790
|
-
};
|
|
4791
4881
|
/**
|
|
4792
4882
|
* Observe a list of Array items.
|
|
4793
4883
|
*/
|
|
4794
|
-
Observer.prototype.observeArray = function (
|
|
4795
|
-
for (var i = 0, l =
|
|
4796
|
-
observe(
|
|
4884
|
+
Observer.prototype.observeArray = function (value) {
|
|
4885
|
+
for (var i = 0, l = value.length; i < l; i++) {
|
|
4886
|
+
observe(value[i], false, this.mock);
|
|
4797
4887
|
}
|
|
4798
4888
|
};
|
|
4799
4889
|
return Observer;
|
|
4800
4890
|
}());
|
|
4801
4891
|
// helpers
|
|
4802
|
-
/**
|
|
4803
|
-
* Augment a target Object or Array by intercepting
|
|
4804
|
-
* the prototype chain using __proto__
|
|
4805
|
-
*/
|
|
4806
|
-
function protoAugment(target, src) {
|
|
4807
|
-
/* eslint-disable no-proto */
|
|
4808
|
-
target.__proto__ = src;
|
|
4809
|
-
/* eslint-enable no-proto */
|
|
4810
|
-
}
|
|
4811
|
-
/**
|
|
4812
|
-
* Augment a target Object or Array by defining
|
|
4813
|
-
* hidden properties.
|
|
4814
|
-
*/
|
|
4815
|
-
/* istanbul ignore next */
|
|
4816
|
-
function copyAugment(target, src, keys) {
|
|
4817
|
-
for (var i = 0, l = keys.length; i < l; i++) {
|
|
4818
|
-
var key = keys[i];
|
|
4819
|
-
def(target, key, src[key]);
|
|
4820
|
-
}
|
|
4821
|
-
}
|
|
4822
4892
|
/**
|
|
4823
4893
|
* Attempt to create an observer instance for a value,
|
|
4824
4894
|
* returns the new observer if successfully observed,
|
|
4825
4895
|
* or the existing observer if the value already has one.
|
|
4826
4896
|
*/
|
|
4827
|
-
function observe(value, shallow) {
|
|
4897
|
+
function observe(value, shallow, ssrMockReactivity) {
|
|
4828
4898
|
if (!isObject(value) || isRef(value) || value instanceof VNode) {
|
|
4829
4899
|
return;
|
|
4830
4900
|
}
|
|
@@ -4833,18 +4903,18 @@
|
|
|
4833
4903
|
ob = value.__ob__;
|
|
4834
4904
|
}
|
|
4835
4905
|
else if (shouldObserve &&
|
|
4836
|
-
!isServerRendering() &&
|
|
4906
|
+
(ssrMockReactivity || !isServerRendering()) &&
|
|
4837
4907
|
(isArray(value) || isPlainObject(value)) &&
|
|
4838
4908
|
Object.isExtensible(value) &&
|
|
4839
|
-
!value.__v_skip) {
|
|
4840
|
-
ob = new Observer(value, shallow);
|
|
4909
|
+
!value.__v_skip /* ReactiveFlags.SKIP */) {
|
|
4910
|
+
ob = new Observer(value, shallow, ssrMockReactivity);
|
|
4841
4911
|
}
|
|
4842
4912
|
return ob;
|
|
4843
4913
|
}
|
|
4844
4914
|
/**
|
|
4845
4915
|
* Define a reactive property on an Object.
|
|
4846
4916
|
*/
|
|
4847
|
-
function defineReactive(obj, key, val, customSetter, shallow) {
|
|
4917
|
+
function defineReactive(obj, key, val, customSetter, shallow, mock) {
|
|
4848
4918
|
var dep = new Dep();
|
|
4849
4919
|
var property = Object.getOwnPropertyDescriptor(obj, key);
|
|
4850
4920
|
if (property && property.configurable === false) {
|
|
@@ -4857,7 +4927,7 @@
|
|
|
4857
4927
|
(val === NO_INIITIAL_VALUE || arguments.length === 2)) {
|
|
4858
4928
|
val = obj[key];
|
|
4859
4929
|
}
|
|
4860
|
-
var childOb = !shallow && observe(val);
|
|
4930
|
+
var childOb = !shallow && observe(val, false, mock);
|
|
4861
4931
|
Object.defineProperty(obj, key, {
|
|
4862
4932
|
enumerable: true,
|
|
4863
4933
|
configurable: true,
|
|
@@ -4902,7 +4972,7 @@
|
|
|
4902
4972
|
else {
|
|
4903
4973
|
val = newVal;
|
|
4904
4974
|
}
|
|
4905
|
-
childOb = !shallow && observe(newVal);
|
|
4975
|
+
childOb = !shallow && observe(newVal, false, mock);
|
|
4906
4976
|
{
|
|
4907
4977
|
dep.notify({
|
|
4908
4978
|
type: "set" /* TriggerOpTypes.SET */,
|
|
@@ -4924,16 +4994,20 @@
|
|
|
4924
4994
|
warn$2("Set operation on key \"".concat(key, "\" failed: target is readonly."));
|
|
4925
4995
|
return;
|
|
4926
4996
|
}
|
|
4997
|
+
var ob = target.__ob__;
|
|
4927
4998
|
if (isArray(target) && isValidArrayIndex(key)) {
|
|
4928
4999
|
target.length = Math.max(target.length, key);
|
|
4929
5000
|
target.splice(key, 1, val);
|
|
5001
|
+
// when mocking for SSR, array methods are not hijacked
|
|
5002
|
+
if (ob && !ob.shallow && ob.mock) {
|
|
5003
|
+
observe(val, false, true);
|
|
5004
|
+
}
|
|
4930
5005
|
return val;
|
|
4931
5006
|
}
|
|
4932
5007
|
if (key in target && !(key in Object.prototype)) {
|
|
4933
5008
|
target[key] = val;
|
|
4934
5009
|
return val;
|
|
4935
5010
|
}
|
|
4936
|
-
var ob = target.__ob__;
|
|
4937
5011
|
if (target._isVue || (ob && ob.vmCount)) {
|
|
4938
5012
|
warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +
|
|
4939
5013
|
'at runtime - declare it upfront in the data option.');
|
|
@@ -4943,7 +5017,7 @@
|
|
|
4943
5017
|
target[key] = val;
|
|
4944
5018
|
return val;
|
|
4945
5019
|
}
|
|
4946
|
-
defineReactive(ob.value, key, val);
|
|
5020
|
+
defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);
|
|
4947
5021
|
{
|
|
4948
5022
|
ob.dep.notify({
|
|
4949
5023
|
type: "add" /* TriggerOpTypes.ADD */,
|
|
@@ -7066,7 +7140,7 @@
|
|
|
7066
7140
|
}
|
|
7067
7141
|
res[getRawDirName(dir)] = dir;
|
|
7068
7142
|
if (vm._setupState && vm._setupState.__sfc) {
|
|
7069
|
-
dir.def = resolveAsset(vm, '_setupState', 'v-' + dir.name);
|
|
7143
|
+
dir.def = dir.def || resolveAsset(vm, '_setupState', 'v-' + dir.name);
|
|
7070
7144
|
}
|
|
7071
7145
|
dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);
|
|
7072
7146
|
}
|