vue 2.7.6 → 2.7.9

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.
Files changed (48) hide show
  1. package/README.md +1 -1
  2. package/dist/vue.common.dev.js +139 -67
  3. package/dist/vue.common.prod.js +3 -3
  4. package/dist/vue.esm.browser.js +137 -66
  5. package/dist/vue.esm.browser.min.js +3 -3
  6. package/dist/vue.esm.js +138 -66
  7. package/dist/vue.js +140 -67
  8. package/dist/vue.min.js +3 -3
  9. package/dist/vue.runtime.common.dev.js +112 -58
  10. package/dist/vue.runtime.common.prod.js +3 -3
  11. package/dist/vue.runtime.esm.js +111 -57
  12. package/dist/vue.runtime.js +113 -58
  13. package/dist/vue.runtime.min.js +3 -3
  14. package/package.json +2 -2
  15. package/packages/compiler-sfc/dist/compiler-sfc.js +56 -26
  16. package/packages/compiler-sfc/package.json +2 -3
  17. package/packages/compiler-sfc/src/compileTemplate.ts +1 -2
  18. package/packages/compiler-sfc/src/rewriteDefault.ts +6 -1
  19. package/packages/compiler-sfc/src/templateCompilerModules/utils.ts +8 -3
  20. package/packages/compiler-sfc/test/rewriteDefault.spec.ts +245 -0
  21. package/src/compiler/codegen/index.ts +31 -10
  22. package/src/core/instance/init.ts +1 -0
  23. package/src/core/instance/inject.ts +10 -5
  24. package/src/core/instance/lifecycle.ts +18 -10
  25. package/src/core/instance/proxy.ts +2 -2
  26. package/src/core/instance/render.ts +8 -2
  27. package/src/core/instance/state.ts +1 -1
  28. package/src/core/observer/index.ts +1 -1
  29. package/src/core/observer/scheduler.ts +10 -1
  30. package/src/core/observer/watcher.ts +14 -5
  31. package/src/core/vdom/modules/directives.ts +9 -1
  32. package/src/core/vdom/vnode.ts +1 -0
  33. package/src/types/component.ts +1 -0
  34. package/src/v3/apiInject.ts +17 -12
  35. package/src/v3/apiLifecycle.ts +16 -1
  36. package/src/v3/apiSetup.ts +38 -17
  37. package/src/v3/apiWatch.ts +2 -5
  38. package/src/v3/index.ts +1 -1
  39. package/src/v3/reactivity/effectScope.ts +5 -1
  40. package/types/index.d.ts +2 -2
  41. package/types/options.d.ts +24 -9
  42. package/types/v3-component-options.d.ts +3 -0
  43. package/types/v3-component-public-instance.d.ts +2 -4
  44. package/types/v3-define-component.d.ts +34 -34
  45. package/types/v3-generated.d.ts +11 -2
  46. package/types/v3-manual-apis.d.ts +2 -2
  47. package/types/v3-setup-context.d.ts +4 -0
  48. package/types/vue.d.ts +108 -31
package/types/vue.d.ts CHANGED
@@ -13,8 +13,15 @@ import {
13
13
  import { VNode, VNodeData, VNodeChildren, NormalizedScopedSlot } from './vnode'
14
14
  import { PluginFunction, PluginObject } from './plugin'
15
15
  import { DefineComponent } from './v3-define-component'
16
- import { nextTick } from './v3-generated'
17
- import { ComponentPublicInstance } from 'v3-component-public-instance'
16
+ import { nextTick, UnwrapNestedRefs, ShallowUnwrapRef } from './v3-generated'
17
+ import {
18
+ UnwrapMixinsType,
19
+ IntersectionMixin
20
+ } from './v3-component-public-instance'
21
+ import {
22
+ ExtractComputedReturns,
23
+ ComponentOptionsMixin
24
+ } from './v3-component-options'
18
25
 
19
26
  export interface CreateElement {
20
27
  (
@@ -41,18 +48,16 @@ type NeverFallback<T, D> = [T] extends [never] ? D : T
41
48
  export interface Vue<
42
49
  Data = Record<string, any>,
43
50
  Props = Record<string, any>,
44
- Parent = never,
45
- Root = never,
46
- Children = never,
51
+ Instance = never,
47
52
  Options = never,
48
53
  Emit = (event: string, ...args: any[]) => Vue
49
54
  > {
50
55
  // properties with different types in defineComponent()
51
56
  readonly $data: Data
52
57
  readonly $props: Props
53
- readonly $parent: NeverFallback<Parent, Vue>
54
- readonly $root: NeverFallback<Root, Vue>
55
- readonly $children: NeverFallback<Children, Vue[]>
58
+ readonly $parent: NeverFallback<Instance, Vue> | null
59
+ readonly $root: NeverFallback<Instance, Vue>
60
+ readonly $children: NeverFallback<Instance, Vue>[]
56
61
  readonly $options: NeverFallback<Options, ComponentOptions<Vue>>
57
62
  $emit: Emit
58
63
 
@@ -60,10 +65,10 @@ export interface Vue<
60
65
  readonly $el: Element
61
66
  readonly $refs: {
62
67
  [key: string]:
68
+ | NeverFallback<Instance, Vue>
63
69
  | Vue
64
70
  | Element
65
- | ComponentPublicInstance
66
- | (Vue | Element | ComponentPublicInstance)[]
71
+ | (NeverFallback<Instance, Vue> | Vue | Element)[]
67
72
  | undefined
68
73
  }
69
74
  readonly $slots: { [key: string]: VNode[] | undefined }
@@ -103,12 +108,20 @@ export type CombinedVueInstance<
103
108
  Methods,
104
109
  Computed,
105
110
  Props,
106
- SetupBindings
107
- > = Data &
111
+ SetupBindings = {},
112
+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
113
+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
114
+ PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>
115
+ > = UnwrapNestedRefs<UnwrapMixinsType<PublicMixin, 'D'>> &
116
+ Data &
117
+ UnwrapMixinsType<PublicMixin, 'M'> &
108
118
  Methods &
119
+ ExtractComputedReturns<UnwrapMixinsType<PublicMixin, 'C'>> &
109
120
  Computed &
121
+ UnwrapMixinsType<PublicMixin, 'P'> &
110
122
  Props &
111
123
  Instance &
124
+ ShallowUnwrapRef<UnwrapMixinsType<PublicMixin, 'B'>> &
112
125
  (SetupBindings extends void ? {} : SetupBindings)
113
126
 
114
127
  export type ExtendedVue<
@@ -117,9 +130,20 @@ export type ExtendedVue<
117
130
  Methods,
118
131
  Computed,
119
132
  Props,
120
- SetupBindings
133
+ SetupBindings = {},
134
+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
135
+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin
121
136
  > = VueConstructor<
122
- CombinedVueInstance<Instance, Data, Methods, Computed, Props, SetupBindings> &
137
+ CombinedVueInstance<
138
+ Instance,
139
+ Data,
140
+ Methods,
141
+ Computed,
142
+ Props,
143
+ SetupBindings,
144
+ Mixin,
145
+ Extends
146
+ > &
123
147
  Vue
124
148
  >
125
149
 
@@ -145,7 +169,9 @@ export interface VueConstructor<V extends Vue = Vue> {
145
169
  Methods = object,
146
170
  Computed = object,
147
171
  PropNames extends string = never,
148
- SetupBindings = {}
172
+ SetupBindings = {},
173
+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
174
+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin
149
175
  >(
150
176
  options?: ThisTypedComponentOptionsWithArrayProps<
151
177
  V,
@@ -153,7 +179,9 @@ export interface VueConstructor<V extends Vue = Vue> {
153
179
  Methods,
154
180
  Computed,
155
181
  PropNames,
156
- SetupBindings
182
+ SetupBindings,
183
+ Mixin,
184
+ Extends
157
185
  >
158
186
  ): CombinedVueInstance<
159
187
  V,
@@ -161,7 +189,9 @@ export interface VueConstructor<V extends Vue = Vue> {
161
189
  Methods,
162
190
  Computed,
163
191
  Record<PropNames, any>,
164
- SetupBindings
192
+ SetupBindings,
193
+ Mixin,
194
+ Extends
165
195
  >
166
196
 
167
197
  /**
@@ -175,7 +205,9 @@ export interface VueConstructor<V extends Vue = Vue> {
175
205
  Methods = object,
176
206
  Computed = object,
177
207
  Props = object,
178
- SetupBindings = {}
208
+ SetupBindings = {},
209
+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
210
+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin
179
211
  >(
180
212
  options?: ThisTypedComponentOptionsWithRecordProps<
181
213
  V,
@@ -183,7 +215,9 @@ export interface VueConstructor<V extends Vue = Vue> {
183
215
  Methods,
184
216
  Computed,
185
217
  Props,
186
- SetupBindings
218
+ SetupBindings,
219
+ Mixin,
220
+ Extends
187
221
  >
188
222
  ): CombinedVueInstance<
189
223
  V,
@@ -191,7 +225,9 @@ export interface VueConstructor<V extends Vue = Vue> {
191
225
  Methods,
192
226
  Computed,
193
227
  Record<keyof Props, any>,
194
- SetupBindings
228
+ SetupBindings,
229
+ Mixin,
230
+ Extends
195
231
  >
196
232
 
197
233
  /**
@@ -214,7 +250,9 @@ export interface VueConstructor<V extends Vue = Vue> {
214
250
  Methods,
215
251
  Computed,
216
252
  PropNames extends string = never,
217
- SetupBindings = {}
253
+ SetupBindings = {},
254
+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
255
+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin
218
256
  >(
219
257
  options?: ThisTypedComponentOptionsWithArrayProps<
220
258
  V,
@@ -222,7 +260,9 @@ export interface VueConstructor<V extends Vue = Vue> {
222
260
  Methods,
223
261
  Computed,
224
262
  PropNames,
225
- SetupBindings
263
+ SetupBindings,
264
+ Mixin,
265
+ Extends
226
266
  >
227
267
  ): ExtendedVue<
228
268
  V,
@@ -230,22 +270,43 @@ export interface VueConstructor<V extends Vue = Vue> {
230
270
  Methods,
231
271
  Computed,
232
272
  Record<PropNames, any>,
233
- SetupBindings
273
+ SetupBindings,
274
+ Mixin,
275
+ Extends
234
276
  >
235
277
 
236
278
  /**
237
279
  * extend with object props
238
280
  */
239
- extend<Data, Methods, Computed, Props, SetupBindings = {}>(
281
+ extend<
282
+ Data,
283
+ Methods,
284
+ Computed,
285
+ Props,
286
+ SetupBindings = {},
287
+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
288
+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin
289
+ >(
240
290
  options?: ThisTypedComponentOptionsWithRecordProps<
241
291
  V,
242
292
  Data,
243
293
  Methods,
244
294
  Computed,
245
295
  Props,
246
- SetupBindings
296
+ SetupBindings,
297
+ Mixin,
298
+ Extends
247
299
  >
248
- ): ExtendedVue<V, Data, Methods, Computed, Props, SetupBindings>
300
+ ): ExtendedVue<
301
+ V,
302
+ Data,
303
+ Methods,
304
+ Computed,
305
+ Props,
306
+ SetupBindings,
307
+ Mixin,
308
+ Extends
309
+ >
249
310
 
250
311
  /**
251
312
  * extend with functional + array props
@@ -290,7 +351,9 @@ export interface VueConstructor<V extends Vue = Vue> {
290
351
  Methods,
291
352
  Computed,
292
353
  PropNames extends string = never,
293
- SetupBindings = {}
354
+ SetupBindings = {},
355
+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
356
+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin
294
357
  >(
295
358
  id: string,
296
359
  definition?: ThisTypedComponentOptionsWithArrayProps<
@@ -299,7 +362,9 @@ export interface VueConstructor<V extends Vue = Vue> {
299
362
  Methods,
300
363
  Computed,
301
364
  PropNames,
302
- SetupBindings
365
+ SetupBindings,
366
+ Mixin,
367
+ Extends
303
368
  >
304
369
  ): ExtendedVue<
305
370
  V,
@@ -307,9 +372,19 @@ export interface VueConstructor<V extends Vue = Vue> {
307
372
  Methods,
308
373
  Computed,
309
374
  Record<PropNames, any>,
310
- SetupBindings
375
+ SetupBindings,
376
+ Mixin,
377
+ Extends
311
378
  >
312
- component<Data, Methods, Computed, Props, SetupBindings>(
379
+ component<
380
+ Data,
381
+ Methods,
382
+ Computed,
383
+ Props,
384
+ SetupBindings,
385
+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
386
+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin
387
+ >(
313
388
  id: string,
314
389
  definition?: ThisTypedComponentOptionsWithRecordProps<
315
390
  V,
@@ -317,7 +392,9 @@ export interface VueConstructor<V extends Vue = Vue> {
317
392
  Methods,
318
393
  Computed,
319
394
  Props,
320
- SetupBindings
395
+ SetupBindings,
396
+ Mixin,
397
+ Extends
321
398
  >
322
399
  ): ExtendedVue<V, Data, Methods, Computed, Props, SetupBindings>
323
400
  component<PropNames extends string>(