Commit Graph

2350 Commits

Author SHA1 Message Date
wonderful-panda 89e9ab8a2a
fix(types/tsx): optional props from Mixin/Extends are treated as required (#2048) 2020-09-16 10:09:35 -04:00
Cédric Exbrayat 7e68ddd354
chore: typos in suspense events (#2131)
Removes the mention of the recede event that has been replaced.
2020-09-16 09:30:47 -04:00
Carlos Rodrigues be27bbc5ad
types(defineComponent): fix missing exported types (#2124) 2020-09-16 09:29:42 -04:00
underfin 066d514d75
feat(compiler-sfc): `additionalData` support for css preprocessors (#2126)
close https://github.com/vitejs/vite/issues/520
2020-09-16 09:28:31 -04:00
Evan You f2ef7d7c8e release: v3.0.0-rc.11 2020-09-15 13:15:42 -04:00
Evan You 87ca99e396 chore: bump deps 2020-09-15 13:04:28 -04:00
Evan You 5ae7380b4a
feat: update Suspense usage (#2099)
See https://github.com/vuejs/vue-next/pull/2099 for details.
2020-09-15 12:45:06 -04:00
Evan You 37e686f25e chore: remove wip code 2020-09-15 12:41:56 -04:00
Carlos Rodrigues 4fd468aced
types(runtime-core): refactor defineComponent (#1883) 2020-09-15 11:46:11 -04:00
izayl 848ccf56fb
test(reactive): add test case of mutation in original reflecting in observed value (#2118) 2020-09-15 10:49:59 -04:00
underfin 05df696a2b
fix(compiler-sfc): should extract comment for import or type declarations (#2107)
fix #2102
2020-09-15 10:39:27 -04:00
HuangYi 98cc1f9d84
fix(KeepAlive): when exclude prop change, it should prune cache that not matched (#2111) 2020-09-15 10:33:50 -04:00
Carlos Rodrigues d4bf9bcbb4
fix(reactivity): `toRef` should not wrap a `ref` (#2103) 2020-09-15 10:29:38 -04:00
HcySunYang aa8dc9a507
fix(compiler-ssr): correct the variable name generated by the generator (#2065) 2020-09-15 10:00:14 -04:00
HcySunYang 7455dca11c
fix(compiler-ssr/teleport): correct the target prop of teleport (#2053) 2020-09-15 09:59:36 -04:00
Jonathan Wood cdd849a09c
chore: fix tests (#2120) 2020-09-15 09:36:27 -04:00
Evan You c67e78ab6f chore(compiler-sfc): gracefully handle failed parse when analyzing bindings 2020-09-14 22:10:23 -04:00
Haoqun Jiang 273d19ad46
fix: should be able to parse decorators in script lang="ts" & jsx (#2088)
* fix: should be able to parse decorators in script lang="ts"

* fix: should also support parsing jsx

Added to `compileScript` instead of `babelParserDefaultPlugins` because
it's not needed for template expression parsing
2020-09-14 21:51:15 -04:00
edison 0cddde6aa4
test(runtime-core): test app API warnings (#2079) 2020-09-14 21:48:38 -04:00
Haoqun Jiang c65d6def84
polish: warn deprecated beforeDestroy/destroyed lifecycle hooks (#1999) 2020-09-14 21:47:58 -04:00
Pick fcf9b2cf19
fix(reactivity): should trigger collection's write-function correctly on non-reactive keys (#1992) 2020-09-14 21:31:04 -04:00
Evan You b2dc95378d types: fix + test inject API typing
ref: #2052
2020-09-14 21:26:28 -04:00
edison b29bc0d694
chore(compiler-core): define `child` if necessary. (#2033) 2020-09-14 20:56:53 -04:00
Pick 09a939d37c
Revert "refactor(runtime-core): add @internal for instance.proxy (#1849)" (#2024)
This reverts commit 4d51be73d3.
2020-09-14 20:56:04 -04:00
satotake 937735251c
feat(compiler-sfc): support `additionalData` option in `compileStyle` when processing sass (#1952) 2020-09-14 20:53:06 -04:00
被雨水过滤的空气 890ca8aa34
fix(keep-alive): should use onMounted and onUpdated to invoke cacheSubtree (#1984) 2020-09-14 20:50:06 -04:00
Hefty 0d4910a211
fix(reactivity): add NaN prop on Array should not trigger length dependency. (#1998) 2020-09-14 20:40:09 -04:00
Evan You 124c385baf perf: should not trigger child update if changed prop is declared emit listener
close #2072
2020-09-14 18:58:30 -04:00
Evan You 4de5b111ee test: fix cloneVNode ref tests 2020-09-14 18:55:00 -04:00
Evan You be946ea549 fix(compiler-core): fix prefixing for `<template v-for>` key expressions
fix #2085
2020-09-14 17:04:27 -04:00
underfin a32870a8f6
fix: inherit `el` for static nodes inside keyed `template` fragment (#2089)
fix #2080
2020-09-14 16:02:29 -04:00
Evan You 612eb6712a fix(runtime-core/refs): handle multiple merged refs for dynamic component with vnode
fix #2078
2020-09-14 15:33:38 -04:00
Stanislav Lashmanov 313dd06065
fix(runtime-core/inject): handle optional `from` option in inject object config (#2073) 2020-09-14 12:52:19 -04:00
Evan You a096a58e41 fix(compiler-core): fix v-if block handling for components that fail to resolve
fix #2058
2020-09-14 12:41:35 -04:00
HcySunYang 24fcf6ae7c
fix(types): properly infer return type from async setup (#2051)
fix #2049
2020-09-14 11:28:56 -04:00
Evan You 0124eacc91 refactor(reactivity): refactor iteration key trigger logic + use more robust Map/Set check 2020-09-14 11:26:34 -04:00
Pick cf1b6c666f
feat(runtime-dom): allow native Set as v-model checkbox source (#1957) 2020-09-14 11:16:50 -04:00
Evan You d4724619fc fix(inject): fix support for inject option default function
fix #2050
2020-09-04 12:07:30 -04:00
Evan You 6dbc6c4cd0 fix(sfc): fix scoped style regression for child component with single root + comment
fix #2046
2020-09-04 11:36:55 -04:00
Evan You 5f4053967c fix(reactivity): revert ac81dcf
fix #2043
2020-09-04 11:10:26 -04:00
Evan You fa7ab0a7f7 fix(runtime-core): warn reserved prefix for setup return properties and ensure consistent dev/prod behavior
close #2042
2020-09-03 11:21:14 -04:00
ᴜɴвʏтᴇ 95c07d8c36
fix(runtime-core): fix priority of option merging (#2041) 2020-09-03 10:35:43 -04:00
Evan You 4386653e76 release: v3.0.0-rc.10 2020-09-02 12:41:54 -04:00
Evan You 52e45a9850 fix(v-once): fix v-once usage with v-if and v-for
fix #2035
2020-09-02 12:30:37 -04:00
Evan You ad93fa42fc fix(runtime-core): openBlock() should not be tracked when block tracking is disabled 2020-09-02 12:30:37 -04:00
Evan You c73b4a0e10 feat(ssr): serverPrefetch 2020-09-01 22:52:46 -04:00
HcySunYang 63f1f18064
fix(runtime-core): v-model listeners that already exists on the component should not be merged (#2011)
fix #1989
2020-09-01 22:24:20 -04:00
Carter Li aa757e8e6d
fix(types): fix `this` type of `this.$watch` (#2022) 2020-09-01 21:08:01 -04:00
HcySunYang 93b8ff94a4
polish(teleport): do not warn missing target when teleport is disabled (#2021) 2020-09-01 21:05:51 -04:00
zhangzhonghe 0d0970f9cd
refactor(runtime-core): remove the deactivated branch in unmountComponent method (#2012) 2020-09-01 21:03:50 -04:00
Evan You 691a4b9530 perf(reactivity): no need to proxy has/ownKeys for readonly objects 2020-09-01 20:52:48 -04:00
Evan You c0427b45ff fix(sfc/scoped-style): inherit scopeId through nested HOCs with inheritAttrs: false
fix #1988
2020-09-01 18:56:02 -04:00
HcySunYang 5b82c48c7b
fix(runtime-core): enable block tracking when normalizing plain element with slot children (#1987)
fix #1980
2020-09-01 12:38:47 -04:00
ᴜɴвʏтᴇ 706b52aadd
fix(runtime-core): ensure consistent $options merge behavior with 2.x (#1986)
close #1978 , close #1979
2020-08-31 21:04:06 -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
Guillaume Chau 5df71b739d chore: add repository directories 2020-08-30 15:06:06 +02:00
Guillaume Chau 7fd3436290 fix(devtools): make el extra properties non-enumerable 2020-08-29 05:00:38 +02:00
Guillaume Chau 38ca7e8e4e feat(devtools): expose vnode and component on elements 2020-08-29 04:53:25 +02:00
Stanislav Lashmanov 4421c00903
feat(compiler-sfc): analyze script bindings (#1962)
Also expose `scriptAst` and `scriptSetupAst` on returned script block
2020-08-28 16:21:03 -04:00
Evan You 94d94bafc5 release: v3.0.0-rc.9 2020-08-26 18:21:18 -04:00
Evan You 0cb7f7f880 fix(runtime-core): fix resolving assets from mixins and extends
fix #1963
2020-08-26 18:09:54 -04:00
meteorlxy bc64c60c7e
style(compiler-sfc): tweak api and types export (#1976) 2020-08-26 15:22:11 -04:00
Pick d0cc4b37d0
test(runtime-core): add tests for componentSlots (#1940) 2020-08-26 12:17:21 -04:00
Pick 97bc30edad
perf(reactivity): avoid triggering Map.has twice on non-reactive keys (#1972) 2020-08-26 11:41:18 -04:00
xxgjzftd d5c4f6ed4d
perf(reactivity): add existing index or non-integer prop on Array should not trigger length dependency (#1969) 2020-08-26 11:28:58 -04:00
HcySunYang 6df0e738cb
fix(runtime-core): properly call lifecycle hooks in chained mixins & extends (#1974)
fix #1973
2020-08-26 10:31:23 -04:00
HcySunYang 9153fc2d8a
fix(runtime-core): class and style should be properly normalized in cloneVNode (#1967)
fix #1964
2020-08-26 09:37:28 -04:00
Evan You ede2e0d1b5 release: v3.0.0-rc.8 2020-08-25 10:31:52 -04:00
zhangzhonghe 1ea24000c8
fix(keep-alive): should remove wrapped version of injected keep alive hooks (#1959) 2020-08-25 10:02:39 -04:00
Amour1688 a47626a4a3
types(jsx): make HTMLAttributes and SVGAttributes extend Events (#1941) 2020-08-25 09:50:33 -04:00
ᴜɴвʏтᴇ 1d55454e61
fix(runtime-dom): avoid setting unchanged input value (#1937)
fix #1935 (fix v-model usage with HTML5 validation)
2020-08-25 09:47:55 -04:00
Katashin 67b6e0f894
fix(types): relax ComponentPublicInstanceConstructor type for class components (#1943) 2020-08-24 21:53:30 -04:00
HcySunYang 955450f539
types(runtime-core): improve the extracted instance types (#1936) 2020-08-24 21:37:22 -04:00
Evan You c15311cfe8 fix(runtime-core): fix data merge order for mixins/extends
fix #1953
2020-08-24 21:30:04 -04:00
Evan You 59e58cd4a5 chore: remove console.log [ci skip] 2020-08-24 21:16:13 -04:00
Evan You 36fa42a88c fix(runtime-core/scheduler): handle nested flushPostFlushCbs calls
fix #1947
2020-08-24 18:47:15 -04:00
Evan You 499bc0bfc4 fix(hmr): properly force hmr full component props update
fix #1942
2020-08-24 18:13:29 -04:00
Evan You 57642fac8f fix(ssr): invoke directive created hook during hydration 2020-08-24 17:24:54 -04:00
Evan You 11804fe93f feat(directives): introduce `created` custom directive hook and ensure
`v-model` event listener fire before template/props listeners

fix #1931
2020-08-24 17:12:16 -04:00
Evan You 016ba116a8 fix(reactivity): fix iOS 12 JSON.stringify error on reactive objects
- Use WeakMap for raw -> reactive/readonly storage. This is slightly
  more expensive than using a field on the taget object but avoids
  polluting the original.

- also fix Collection.forEach callback value

fix #1916
2020-08-24 15:34:04 -04:00
Guillaume Chau 410e7abbbb refactor(devtools): emit needs to send the instance in args 2020-08-24 20:27:40 +02:00
Guillaume Chau 23233dc8b8 feat(devtools): catch events 2020-08-24 01:33:12 +02:00
Yang Mingshan 10293c7a18
fix(watch): traverse refs in deep watch (#1939)
ref #1900
2020-08-23 14:41:11 -04:00
Guillaume Chau 31b99a9139 feat(devtools): expose setupState target object 2020-08-22 16:40:04 +02:00
Guillaume Chau 6eb7fd8333 fix(devtools): unmountApp not behind compile flag 2020-08-22 16:34:18 +02:00
Guillaume Chau 3138f4b42f chore: rename createDevtoolsHook to createDevtoolsComponentHook 2020-08-22 15:53:21 +02:00
Evan You 54d06ec495 feat(runtime-core): support variadic children in `h` for simple JSX compat
ref: #1917
2020-08-21 21:54:33 -04:00
Evan You 6602d6dbff release: v3.0.0-rc.7 2020-08-21 14:13:05 -04:00
Robbin Baauw 07919e0065
perf(reactivity): improve ref performance by using class-based implementation (#1900) 2020-08-21 13:47:41 -04:00
Li Chen 0f8c9917f8
chore(runtime-core): use ReactiveFlags.SKIP in vnode for consistency (#1901) 2020-08-21 13:45:42 -04:00
ᴜɴвʏтᴇ 3c05f8bbd6
fix(reactivity): unwrap non-index accessed refs on reactive arrays (#1859)
close #1846
2020-08-21 13:36:41 -04:00
XRenSiu bb54a84cd1
chore: use '@vue/shared' instead of '@vue/shared/src' (#1915) 2020-08-21 12:50:06 -04:00
Evan You f02e2f99d9 fix(runtime-core): disable block tracking when calling compiled slot function in tempalte expressions
fix #1745, fix #1918
2020-08-21 12:47:45 -04:00
Evan You 7454e2a52b build(deps): upgrade to TypeScript 4 2020-08-20 17:48:28 -04:00
Evan You 91700fbec2 refactor(compiler-core): simplify hoistStatic check for nodes without patchFlag
close #1912
2020-08-20 11:43:34 -04:00
HcySunYang 255a2bd178
test(runtime-core): add tests for the optimized mode (#1884) 2020-08-20 10:56:31 -04:00
Evan You a74f8d7891 test: use polling for more stable markdown e2e tests
close #1908
2020-08-20 10:52:45 -04:00
Evan You d4cc7b2496 fix(teleport): only inherit el for non-patched nodes
fix #1903
2020-08-20 10:44:28 -04:00
underfin 69cfed6b31
fix(compiler-core): should attach key to single element child of `<template v-for>` (#1910) 2020-08-20 10:09:57 -04:00
HcySunYang 7ffb79c563
fix(runtime-core): correctly track dynamic nodes in renderSlot (#1911) 2020-08-20 09:37:26 -04:00
Evan You 91c4735416 release: v3.0.0-rc.6 2020-08-19 18:17:42 -04:00
Evan You cfa7636bbe chore: comments 2020-08-19 18:02:17 -04:00
Evan You 1eb6067a85 fix(runtime-core): fix beforeUpdate call timing to allow state mutation
fix #1899
2020-08-19 17:57:51 -04:00
Evan You 24041b7ac1 fix(compiler-core): generate NEED_PATCH flag for element with vnode hooks 2020-08-19 17:30:44 -04:00
Carlos Rodrigues c2913d57d1
fix(types): handling PropType<Function> with default value (#1896)
fix #1891
2020-08-19 16:36:42 -04:00
Pick 02dcc68c24
test(reactivity): improve built-in Collection subclass test cases (#1885) 2020-08-19 16:22:31 -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
Carlos Rodrigues 4baf852a34
types(runtime-core): make `FunctionalComponent` with emit string[] to be `Component` (#1879)
fix #1847
2020-08-19 10:00:48 -04:00
HcySunYang 7f82428680
types(runtime-core): tweak the type of KeepAlive (#1871) 2020-08-19 10:00:01 -04:00
edison 075d769e0b
chore: fix typo for `babelParserDefautPlugins` (#1897) 2020-08-19 09:53:09 -04:00
edison 7dd067206c
chore: remove unused type `VNodeDirectiveData` (#1893) 2020-08-19 09:51:44 -04:00
Carlos Rodrigues c86e7ad11b
types(reactivity): improve typings for `shallowRef` (#1780) 2020-08-18 23:34:29 -04:00
Jordan Pittman 4172fdb90c
feat(reactivity): return array when calling `toRefs` on array (#1768)
close #1764
2020-08-18 12:11:13 -04:00
小妍妍 fdb2f418cf
chore: remove deprecated `<content>` tag (#1647)
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/content
2020-08-18 11:47:38 -04:00
wxy 3892ea884b
chore(runtime-dom): remove deprecated tags from jsx typing (#1627) 2020-08-18 11:43:14 -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
Aurelius333 a88895b5da
types(runtime-core): make `this` void in prop validators and prop default factories (#1867) 2020-08-18 11:25:55 -04:00
HcySunYang 9d36c61796
types(runtime-core): improve PropType inference precision (#1863) 2020-08-18 11:23:18 -04:00
Pick 4d51be73d3
refactor(runtime-core): add @internal for instance.proxy (#1849) 2020-08-18 11:12:26 -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
ᴜɴвʏтᴇ d005b578b1
fix(reactivity): accept subtypes of collections (#1864) 2020-08-17 12:17:46 -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
Barthélémy Ledoux 62b9d02f6f
feat(compiler-core): add `comments` parser option (#1858) 2020-08-17 11:20:28 -04:00
kazuya kawaguchi 619efd9ac5
fix(compiler-sfc): custom blocks sourcemap (#1812) 2020-08-14 17:47:28 -04:00
susiwen8 a2c6f0c8c7
chore: remove unecessary 'export' (#1785) 2020-08-14 17:38:32 -04:00
Pick 44448fdd22
types(reactivity): add dts for proxyRefs & improve typings (#1786) 2020-08-14 17:37:36 -04:00
Aurelius333 5002ab53d6
types(runtime-core): make `this` void in emits validator (#1842) 2020-08-14 17:36:26 -04:00
Evan You 223f180529 test(watch): add same value skipping trigger test 2020-08-14 17:35:49 -04:00
zhangzhonghe 517c2b8bdb
fix(teleport): always inherit root DOM nodes on patch (#1836)
fix #1813
2020-08-14 17:26:32 -04:00
Evan You 9fb84187f0 chore: bump markdown e2e test wait period 2020-08-14 17:07:42 -04:00
Necmettin Karakaya 86187ca907
chore: typos (#1670) 2020-08-14 17:05:12 -04:00
edison 2a1b0fc6d7
chore: use `value` instead of `n.value` (#1770) 2020-08-14 17:00:49 -04:00
Evan You 86a4f2a6b3 chore: remove unnecessary wrap 2020-08-14 09:52:30 -04:00
HcySunYang caccec3f78
fix(runtime-core/scheduler): sort postFlushCbs to ensure refs are set before lifecycle hooks (#1854)
fix #1852
2020-08-14 09:50:23 -04:00
Evan You ac81dcf0cc fix(reactivity): effect should still check sync self-trigger 2020-08-13 17:45:21 -04:00
Evan You 611437a3fe fix(runtime-core/scheduler): allow component render functions to trigger itself
fix #1801
2020-08-13 17:42:47 -04:00
underfin bc6f252c4a
fix(runtime-core): should correctly call `beforeEnter` inside `Suspense` (#1805)
fix #1795
2020-08-13 12:36:30 -04:00
HcySunYang 3991ff03ce
fix(runtime-core): separate null vs. non-null ref value updates (#1835)
fix #1789, fix #1834
2020-08-13 12:27:17 -04:00
Jacob Smith b14f4a505b
fix(codeframe): Added Math.max to prevent RangeError (#1807)
fix #1806
2020-08-12 15:52:28 -04:00
beary b984d47ac4
fix(types/jsx): update innerHTML property in jsx typing (#1814) 2020-08-12 15:50:11 -04:00
Evan You 50adc014f5 refactor(reactivity): readonly collections should not track 2020-08-06 12:10:03 -04:00
Evan You ed4381020f fix(reactivity): readonly+reactive collection should also expose readonly+reactive values
fix #1772
2020-08-06 11:18:16 -04:00
Evan You 48576e582c fix(transition): transition should accept multiple handlers on same event
fix #1746
2020-08-06 10:28:03 -04:00
Evan You 791eff3dfb fix(runtime-core): avoid manual slot invocation in template expressions interfering with block tracking
fix #1745
2020-08-06 10:16:13 -04:00
zhangzhonghe 233d191d0d
fix(keep-alive): fix activated hook invocation on nested components (#1743)
fix #1742
2020-08-06 09:42:52 -04:00
Eduardo San Martin Morote 00683fce9a
fix(runtime-dom): patch `form` as an attribute (#1788)
Close #1787
2020-08-06 09:32:28 -04:00
wujieZ 2787c34cd4
fix(reactivity): use isExtensible instead of isFrozen (#1753)
close #1784
2020-08-05 11:53:50 -04:00
Evan You 3692f2738f refactor(runtime-core/scheduler): dedicated preFlush queue
properly fix #1763, #1777, #1781
2020-08-05 10:55:23 -04:00
Evan You 74a1265fea chore: remove debugger 2020-08-05 09:32:18 -04:00
Evan You a0e34cee4a fix(watch): exhaust pre-flush watchers + avoid duplicate render by pre-flush watchers
close #1777
2020-08-04 13:20:23 -04:00
Eduardo San Martin Morote b5f91ff570
fix(watch): allow handler to be a string (#1775)
fix #1774
2020-08-04 12:42:47 -04:00
Evan You b0d01e9db9 dx(compiler-core): warn on `<template v-for>` key misplacement
Note: the behavior is different from Vue 2. `<template v-for>` are compiled
into an array of Fragment vnodes so the key should be placed the `<template>`
for v-for to use it for diffing.
2020-08-04 12:20:32 -04:00
Evan You de0c8a7e3e fix(compiler-core): v-if key error should only be checking same key on different branches 2020-08-04 12:01:18 -04:00
Evan You 11ed210391 chore: fix tests 2020-08-03 18:01:07 -04:00
Evan You 8d4abc3814 chore: unset removed invokers 2020-08-03 17:56:55 -04:00
Evan You 1c967fc44b fix(runtime-dom): fix v-on same computed handler on multiple elements
fix #1747
2020-08-03 17:55:22 -04:00
Yang Mingshan b2a91429ed
fix(runtime-core/scheduler): prevent duplicate queue (#1767) 2020-08-03 17:19:06 -04:00
Aurelius333 86cdf6694d
chore(compiler-core): improve X_V_IF_KEY error message (#1757) 2020-08-03 17:14:14 -04:00
Evan You 0cd98c3040 fix(runtime-dom): style binding multi value support
fix #1759
2020-08-03 17:13:17 -04:00
Evan You f6afe7000e fix(runtome-core): do not cache property access in beforeCreate hook
fix #1756
2020-08-03 17:04:45 -04:00
Evan You d4c17fb48b fix(watch): pre-flush watcher watching props should trigger before component update
fix #1763
2020-08-03 16:49:30 -04:00
Evan You fce2689ff1 fix(watch): should trigger watcher callback on triggerRef when watching ref source
fix #1736
2020-07-30 18:29:38 -04:00
Evan You 09702e95b9 fix(runtime-core/scheduler): only allow watch callbacks to be self-triggering
fix #1740

Previous fix for #1727 caused `watchEffect` to also recursively trigger
itself on reactive array mutations which implicitly registers array
`.length` as dependencies and mutates it at the same time.

This fix limits recursive trigger behavior to only `watch()` callbacks
since code inside the callback do not register dependencies and
mutations are always explicitly intended.
2020-07-30 17:57:20 -04:00
Carlos Rodrigues ce78eac8e9
fix(runtime-core): check if the key is string on undefined property warning (#1731) 2020-07-29 10:06:36 -04:00
Evan You 848d9ce2ea release: v3.0.0-rc.5 2020-07-28 17:42:05 -04:00
Evan You 6f5d840612 feat(sfc): support resolving template components from `<script setup>` exports 2020-07-28 17:31:46 -04:00
Evan You aa06b1034d
feat(reactivity): `proxyRefs` method and `ShallowUnwrapRefs` type (#1682)
* feat(reactivity): `proxyRefs` method and `ShallowUnwrapRefs` type

BREAKING CHANGE: template auto ref unwrapping are now applied shallowly,
i.e. only at the root level. See https://github.com/vuejs/vue-next/pull/1682 for
more details.
2020-07-28 16:30:56 -04:00
underfin de62cc040c
fix(hmr): should update el for `HYDRATE_EVENTS` patchFlags node (#1707)
fix https://github.com/vitejs/vite/issues/613
2020-07-28 15:52:20 -04:00
Che Guevara 06cad62ee8
test(transition): add invalid durations test case (#1702) 2020-07-28 15:36:36 -04:00
underfin 07ece2e926
fix(style-vars): fix css vars on component with suspense as root (#1718) 2020-07-28 15:30:18 -04:00
Evan You 58b4a382f9 refactor(compiler-core): emit error on v-if key usage 2020-07-28 15:18:41 -04:00
Evan You 355c052622 fix(runtime-core): dev root resolution should differentiate user comments vs v-if comments
fix #1704
2020-07-28 14:16:09 -04:00
underfin 578f25c34e
fix(compiler-sfc): `less` and `stylus` output deps path is absolute p… (#1685) 2020-07-28 13:45:24 -04:00
Evan You 4ef5c8d424 fix(runtime-core): fix scheduler dedupe when not flushing 2020-07-28 13:23:09 -04:00
Evan You c27dfe1d09 fix(runtime-core): scheduler should allow intentional self triggering effects
fix #1727
2020-07-28 12:29:43 -04:00
Evan You 730e39eb76 refactor: remove unnecessary conditions and test case 2020-07-28 12:26:14 -04:00
Evan You b7ef38b773 fix(reactivity): fix ref mutation debugger event values 2020-07-28 12:01:34 -04:00
Evan You 0b3b1cfa48 fix(v-model): enable v-model type detection on custom elements 2020-07-28 11:44:39 -04:00
underfin 04a4ebaaeb
fix(runtime-core): use correct container for moving `Teleport` content (#1703) 2020-07-28 11:23:39 -04:00
Evan You fbf865d9d4 fix(compiler-core): always compile Teleport and Suspense as blocks 2020-07-28 11:12:43 -04:00
Evan You b3b65b4058 fix: runtime compilation marker should be applied in exposed compile function 2020-07-28 11:11:26 -04:00
Evan You 7e8b26eba8 refactor(runtime-core): make nextTick() promise reject on scheduler flush error 2020-07-28 10:40:25 -04:00
Evan You 3cc768f9f2 refactor(runtime-core): adjust error handling behavior
- Crash in dev to make the errors more noticeable
- Recover in prod to reduce impact on end users
2020-07-28 10:40:25 -04:00
Evan You 5c74243211 test: move mockWarn into setup files 2020-07-27 22:58:51 -04:00
underfin d4527230e4
fix(compiler-core): prevent generating invalid code for v-bind with empty expression (#1720) 2020-07-27 18:31:08 -04:00
Evan You 5fbd1f4ccb fix(compiler-core/v-on): only cache empty handler when the option is used
fix #1716

The original idea is that the empty handler can be cached in all cases,
but this contradicts with the assumption that `hasCachedProps` check in
the static hoist transform can simply return `false` in the browser
build.
2020-07-27 18:28:39 -04:00
Evan You c930f2ee8a chore: update snapshot 2020-07-27 17:45:30 -04:00
Evan You 354d79c42b fix(runtime-core): respect render function from mixins
fix #1630
2020-07-27 17:44:17 -04:00
Evan You 71c3c6e2a0 fix(v-model): allow v-model usage on declared custom elements
fix #1699
2020-07-27 17:09:30 -04:00
underfin 2a633c84ff
fix(transition): should call transition hooks inside already resolved suspense (#1698)
fix #1689
2020-07-27 16:47:07 -04:00
Evan You 3d2bdafd2f chore: revert accidentally commented line 2020-07-23 14:53:09 -04:00
Evan You a75b8a268f fix(build): fix component resolution when disabling options API
fix #1688
2020-07-23 14:33:15 -04:00
Evan You ba17c871d8 feat: support delimiters option for runtime compilation
close #1679
2020-07-23 14:27:17 -04:00
Evan You 7edfdf7e23 fix(reactivity): avoid tracking internal symbols in has trap
fix #1683
2020-07-22 21:23:32 -04:00
underfin 452edb73cb
fix(compiler-sfc): fix rewrite named export default (#1675) 2020-07-22 21:00:41 -04:00
Evan You d63daaf9b6 release: v3.0.0-rc.4 2020-07-21 15:40:46 -04:00
Evan You 11c2ad4a04 fix(deps): move @babel/types back to dependencies 2020-07-21 15:39:54 -04:00
Evan You 7753485baa release: v3.0.0-rc.3 2020-07-21 15:27:26 -04:00
Rahul Kadyan 615dccd00e
feat(compiler-core/internal): add `onContextCreated` option to `generate` (#1672) 2020-07-21 15:16:20 -04:00
Evan You 4951d43526 fix(compiler-sfc): `<style vars scoped>` prefixing should only apply to pre-transform source
fix #1623
2020-07-21 15:05:28 -04:00
Evan You a28a11ef22 chore: make app root attribute consistent with scopeId attributes 2020-07-21 14:56:28 -04:00
Evan You c852bf18d7 fix(v-model): v-model listeners should not fallthrough to plain element root
fix #1643
2020-07-21 14:17:48 -04:00
Bjarki Hall 304830a764
feat(runtime-core): respect function name when using `defineComponent` function shorthand (#1661) 2020-07-21 13:15:26 -04:00
Evan You 1af3531719 fix(runtime-core): fix attr fallthrough on compiled framgent w/ single static element + comments 2020-07-21 13:11:19 -04:00
Evan You 6390ddfb7d fix(runtime-core): do not use bail patchFlag on cloned vnodes
fix #1665

- cloned vnodes with extra props will receive only the full props flag
- this commit affects `cloneVNode` behavior when used in manual render
  functions.
  - ok for normal elements since elements only use patchFlags for own
    props optimization
  - full props flag is skipped for fragments because fragments use
    patchFlags only for children optimization
  - this also affects `shouldUpdateComponent` where it should now only
    respect patchFlags in optimized mode, since component vnodes use
    the patchFlag for both props and slots optimization checks.
2020-07-21 13:11:19 -04:00
learningMaster 324167d3d2
test(runtime-dom): add test for vModel composition session (#1631) 2020-07-21 10:34:08 -04:00
Zardddddd60 3e412c10e0
refactor(reactive): reduce code size by assigning to a local variable (#1634) 2020-07-21 10:33:09 -04:00
Evan You fb8e83f0c2 chore: update link for the feature flag warning [ci skip] 2020-07-21 10:26:16 -04:00
Evan You 7ae07f718d docs: details on esm-bundler feature flags [ci skip] 2020-07-21 10:11:33 -04:00
Evan You be4df124e6 refactor: move @babel/types to dev deps, reduce install size 2020-07-20 22:14:05 -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
Carlos Rodrigues dabdc5e115
feat(computed): add readonly flag if no setter is provided (#1654) 2020-07-20 17:35:31 -04:00
Evan You ad199e1a25 fix(build): make transition tree-shakeable again 2020-07-20 16:17:14 -04:00
underfin 6f148d0b9a
fix(compiler-sfc): use correct importer with `useCssVars` (#1658)
fix #https://github.com/vitejs/vite/issues/578
2020-07-20 12:46:33 -04:00
Liaogming 19e41eaddc
chore(compiler-sfc): delete empty file in fixture (#1649) 2020-07-20 12:43:58 -04:00
Tan Li Hau 288b4eab9e
fix(watch): fix watching reactive array (#1656)
fixes #1655
2020-07-20 12:39:22 -04:00
Evan You 1f4045a086 release: v3.0.0-rc.2 2020-07-19 14:52:42 -04:00
Evan You af7e100ef2 fix(compiler-core): fix v-if + v-for on `<template>`
fix #1637
2020-07-19 14:36:01 -04:00
underfin 0526e5d7fa
fix(compiler-sfc): use `filename` from options when compile styl preprocessor (#1635)
fix #https://github.com/vitejs/vite/issues/577
2020-07-19 14:17:31 -04:00
Evan You 03c681e396 refactor(types): move component props interfaces + expose `AllowedComponentProps`
fix #1632
2020-07-19 14:09:53 -04:00
zhangzhonghe 2deb0c7a74
fix(keep-alive): handle "0" as cache key (#1622)
fix #1621
2020-07-19 13:31:07 -04:00
Carlos Rodrigues 8facaefcc3
fix(watch): callback not called when using `flush:sync` (#1633) 2020-07-19 13:30:24 -04:00
Evan You 4655d69983 fix(runtime-core/hmr): only use cloneNode mount optimization in prod
fix #1626
2020-07-19 13:22:58 -04:00
Evan You b3af5dbe5d chore: more detailed teleport target warning
close #1629
2020-07-19 11:52:03 -04:00
HcySunYang f9826fa963
fix(compiler-core/v-on): fix codegen for event handler with newlines (#1640) 2020-07-19 11:48:26 -04:00
Stanislav fa5ddf8d06
chore(types): convert type literals to records (#1615) 2020-07-18 22:56:28 -04:00
motao b8db7ab889
test(runtime-dom): improve v-on system key modifiers test (#1597) 2020-07-18 22:55:39 -04:00
Evan You 0ea14cade9 release: v3.0.0-rc.1 2020-07-17 15:30:17 -04:00
HcySunYang 5d8a64d53a
feat(types): deny unknown attributes on component by default (#1614)
close #1519
2020-07-17 11:43:28 -04:00
leyale e626caa4d1
chore(shared): menuitem tag has been deprecated (#1613) 2020-07-17 11:26:12 -04:00
underfin a8966457d3
refactor(devtools): extract same logic into `createDevtoolsHook` (#1608) 2020-07-17 11:25:33 -04:00
ezshine 2c3427413d
chore: typo [ci skip] (#1604) 2020-07-17 11:24:53 -04:00
lawvs a935998b33
chore: better comment hovers preview [ci skip] (#1612) 2020-07-17 11:24:12 -04:00
Evan You 341b30c961 fix(watch): post flush watchers should not fire when component is unmounted
fix #1603
2020-07-17 11:17:29 -04:00
Evan You 024a8f10f5 chore: also expose DeepReadonly in runtime-core 2020-07-17 09:29:44 -04:00
Pick 527c2c8bbb
feat(types): expose DeepReadonly type (#1606) 2020-07-17 09:28:50 -04:00
Guillaume Chau 568b6db12b
feat: Initial devtools support (#1125) 2020-07-16 18:18:52 -04:00
Evan You 5ed73cd874 release: v3.0.0-beta.24 2020-07-16 13:51:52 -04:00
Evan You d5055cd8dd refactor(compiler-sfc): simplify style preprocessors 2020-07-16 13:38:46 -04:00
Evan You 9cb29eea3a fix(compiler-sfc): fix preprocessor filename access 2020-07-16 13:36:31 -04:00
Sohaib Alam 6136cf874e
chore: fix error message (#1602)
make the error message in `compiler-dom` and `compiler-ssr` a bit
cleaner and fix grammar
2020-07-16 13:36:16 -04:00
Evan You 8b5d153d7f release: v3.0.0-beta.23 2020-07-16 12:48:56 -04:00
underfin e41d8310de
feat(compiler-sfc): export dependencies for css and css preprocessors (#1278) 2020-07-16 12:33:37 -04:00
Zardddddd60 ecf872fc95
refactor(reactive): remove unnecessary args handling in reactiveEffect (#1593) 2020-07-15 23:19:15 -04:00
无忧 22973b418b
chore: remove deprecated elements from dom tag config (#1596) 2020-07-15 23:16:28 -04:00
Evan You 165068dbc2 perf(runtime-core): avoid duplicate postFlushCb invocation
Also improve flush performance by using for loop instead of shift()

fix #1595
2020-07-15 22:36:41 -04:00
Evan You aab99abd28 fix(slots): properly force update on forwarded slots
fix #1594
2020-07-15 20:12:49 -04:00
Evan You 44e6da1402 fix(runtime-dom): unref when setting useCssVars 2020-07-15 18:31:10 -04:00
Evan You 9b5ff2b567 fix(compiler-sfc): fix useCssVars codegen 2020-07-15 18:05:35 -04:00
Evan You af4b0c2cf1 fix(compiler-sfc): prohibit src usage for `<script setup>` + do not
process non js/ts blocks in compileScript
2020-07-15 17:44:02 -04:00