Commit Graph

97 Commits

Author SHA1 Message Date
HcySunYang
48f0d2944f
fix(types): extract the correct props type for the DateConstructor (#2676) 2021-02-05 19:56:23 +01:00
edison
ffd5288545
feat(runtime-core): props type support BigInt (#2891) 2021-02-03 19:25:45 +01:00
被雨水过滤的空气
edd49dcab4
fix(runtime-core): avoid mutating EMPTY_ARR when setting dev root (#2419)
also freeze EMPTY_ARR in dev

fix #2413
2020-10-19 18:08:54 -04:00
Carlos Rodrigues
d9ad45ad6c
types(defineComponent): fix optional Boolean prop types (#2401)
fix #2338
2020-10-19 17:25:55 -04:00
underfin
e78915a740
fix(hmr): full diff props for non-sfc component (#2359)
close #https://github.com/vitejs/vite/issues/872
2020-10-15 11:05:12 -04:00
Evan You
a66e53a24f fix(runtime-core): fix SSR memoery leak due to props normalization cache
fix #2225

The previous props/emits normlaization was caching normalized result per
app instance, but during SSR there is a new app instance created for
every request.

The fix now de-opts props/emits normlaization caching when there are
props/emits declared in global mixins - which is a very rare use case.
2020-10-06 15:31:29 -04:00
Evan You
58c31e3699 feat(runtime-core): support using inject() inside props default functions 2020-09-17 15:59:01 -04:00
wonderful-panda
89e9ab8a2a
fix(types/tsx): optional props from Mixin/Extends are treated as required (#2048) 2020-09-16 10:09:35 -04:00
Evan You
8ed0b342d4 fix(runtime-core): fix props/emits resolving with global mixins
fix #1975
2020-08-31 18:32:07 -04:00
Evan You
499bc0bfc4 fix(hmr): properly force hmr full component props update
fix #1942
2020-08-24 18:13:29 -04:00
Carlos Rodrigues
c2913d57d1
fix(types): handling PropType<Function> with default value (#1896)
fix #1891
2020-08-19 16:36:42 -04:00
Evan You
eb2ae44d94 refactor(types): widen Component type to include consutructor types
returned from `defineComponent`

ref: https://github.com/vuejs/vue-router-next/pull/421
also close #1880

Previous `Component` type is now exported as `ConcreteComponent`.

This introduces a minor breaking change when calling `h(comp, { ... })`
will now fail if `comp` is a of generic `Component` type, since it does
not specify what props it expects.
2020-08-19 16:19:25 -04:00
Evan You
9f92871c80 types(runtime-core): argument for props validator
Unfortunately it requires explicit annotation for now
2020-08-18 11:37:34 -04:00
HcySunYang
9d36c61796
types(runtime-core): improve PropType inference precision (#1863) 2020-08-18 11:23:18 -04:00
Evan You
0d508e9f51 feat(runtime-core): pass current props to prop default value functions
close #1886
2020-08-18 10:52:50 -04:00
Evan You
6ccd9ac2bc fix(runtime-core): fix Object props validation for objects with custom toStringTag
fix #1872
2020-08-17 11:25:38 -04:00
Evan You
54727f9874 feat: provide ability to overwrite feature flags in esm-bundler builds
e.g. by replacing `__VUE_OPTIONS_API__` to `false` using webpack's
`DefinePlugin`, the final bundle will drop all code supporting the
options API.

This does not break existing usage, but requires the user to explicitly
configure the feature flags via bundlers to properly tree-shake the
disabled branches. As a result, users will see a console warning if
the flags have not been properly configured.
2020-07-20 21:51:30 -04:00
Stanislav
fa5ddf8d06
chore(types): convert type literals to records (#1615) 2020-07-18 22:56:28 -04:00
Evan You
ba3b3cdda9 fix(runtime-core/emits): merge emits options from mixins/extends
fix #1562
2020-07-13 11:55:46 -04:00
Evan You
903e8f697e fix(runtime-core): should allow v-model listeners to fallthrough, but ignore for warning
fix #1543
2020-07-08 11:56:47 -04:00
Evan You
6dd59ee301 fix(v-model): should ignore compiled v-model listeners in attr fallthrough
fix #1510
2020-07-06 17:00:34 -04:00
underfin
1c4e1b6792
fix(runtime-core): should remove no longer present camelCase props (#1413)
fix #1412
2020-06-26 09:16:06 -04:00
Albert Liu
a60f3b1430
refactor(types): remove unnecessary as any (#1411) 2020-06-25 11:05:39 -04:00
Evan You
6abac87b3d fix(runtime-core): track access to $attrs
fix #1346
2020-06-12 16:59:15 -04:00
tangjinzhou
d437a0145d
fix(runtime-core): default value for function type prop (#1349)
fix #1348
2020-06-12 09:06:28 -04:00
Carlos Rodrigues
4c4f39b6ea
types(props): fix typo on prototype (#1334) 2020-06-11 17:34:21 -04:00
Evan You
80c868aefe workflow: setup eslint for prohibited syntax and globals
fix #1285
2020-06-10 16:54:23 -04:00
Evan You
2417a0cb30 fix(runtime-core): respect props from mixins and extends
fix #1236, close #1250
2020-06-09 11:27:40 -04:00
doly mood
d3c436ae2e
feat(types): mixins/extends support in TypeScript (#626) 2020-06-09 10:37:00 -04:00
Alexandre Bonaventure Geissmann
4a5021e763
fix(runtime-core): use array destructuring instead of object for edge compat (#1302)
fix #1294
2020-06-05 10:57:44 -04:00
HiiTea
22717772dd
chore: fix typos (#1090) 2020-05-01 09:42:58 -04:00
Evan You
171cfa404f fix(runtime-core): should not cast prop value if prop did not change
fix #999
2020-04-20 14:16:25 -04:00
Evan You
09b4202a22 refactor(reactivity): adjust APIs
BREAKING CHANGE: Reactivity APIs adjustments:

- `readonly` is now non-tracking if called on plain objects.
  `lock` and `unlock` have been removed. A `readonly` proxy can no
  longer be directly mutated. However, it can still wrap an already
  reactive object and track changes to the source reactive object.

- `isReactive` now only returns true for proxies created by `reactive`,
   or a `readonly` proxy that wraps a `reactive` proxy.

- A new utility `isProxy` is introduced, which returns true for both
  reactive or readonly proxies.

- `markNonReactive` has been renamed to `markRaw`.
2020-04-15 16:45:20 -04:00
Evan You
3178504273 refactor(reactivity): make readonly non-tracking 2020-04-14 23:49:46 -04:00
Evan You
c80b857eb5 fix(runtime-core): should resolve value instead of delete for dynamic props with options 2020-04-14 16:17:35 -04:00
Evan You
7cbf684611 fix(runtime-core): fix kebab-case props update
fix #955
2020-04-13 12:37:31 -04:00
Evan You
c5f0f63b91 refactor(runtime-core): make setup attrs proxy dev only 2020-04-06 17:57:27 -04:00
Evan You
ec4a4c1e06 refactor(runtime-core): refactor props resolution
Improve performance in optimized mode + tests
2020-04-06 17:37:47 -04:00
Evan You
c7c3a6a3be feat(runtime-core): emits validation and warnings 2020-04-03 20:40:34 -04:00
Evan You
24e9efcc21 refactor(runtime-core): extract component emit related logic into dedicated file 2020-04-03 19:08:17 -04:00
Evan You
bf473a64ea feat(runtime-core): type and attr fallthrough support for emits option 2020-04-03 12:05:52 -04:00
Carlos Rodrigues
026eb729f3
fix(types): allow use PropType with Function (#915)
close #748
2020-04-03 09:28:13 -04:00
Evan You
b3890a93e3 fix(runtime-core): fix component proxy props presence check
fix #864
2020-03-21 16:25:33 -04:00
Evan You
ba9a91c48c refactor: remove null comparisons 2020-03-18 18:14:51 -04:00
Evan You
aa4ab39c1a refactor: separate vnode hooks and directive hooks 2020-03-18 12:30:26 -04:00
Evan You
3b282e7e3c fix(runtime-core): fix boolean props validation 2020-03-17 10:35:32 -04:00
yang
3d38e6faf3
refactor(componentProps): extract validate prop name logic (#825) 2020-03-16 18:45:08 -04:00
jods
c7ae269972
fix(runtime-core): empty boolean props (#844)
close #843
2020-03-16 10:19:06 -04:00
Evan You
e1660f4338 refactor(runtime-core): adjust attr fallthrough behavior
BREAKING CHANGE: adjust attr fallthrough behavior

    Updated per pending RFC https://github.com/vuejs/rfcs/pull/137

    - Implicit fallthrough now by default only applies for a whitelist
      of attributes (class, style, event listeners, a11y attributes, and
      data attributes).

    - Fallthrough is now applied regardless of whether the component has
      explicitly declared props. (close #749)
2020-02-28 17:53:26 -05:00
Evan You
cfadb98011 fix(runtime-core): rework vnode hooks handling
- peroperly support directive on components (e.g. <foo v-show="x">)
- consistently invoke raw vnode hooks on component vnodes (fix #684)
2020-02-10 13:15:36 -05:00