3.0.0-rc.5 (2020-07-28)
- build: fix component resolution when disabling options API (a75b8a2), closes #1688
- compiler-core: always compile Teleport and Suspense as blocks (fbf865d)
- compiler-core: prevent generating invalid code for v-bind with empty expression (#1720) (d452723)
- compiler-core/v-on: only cache empty handler when the option is used (5fbd1f4), closes #1716
- compiler-sfc:
less
andstylus
output deps path is absolute p… (#1685) (578f25c) - compiler-sfc: fix rewrite named export default (#1675) (452edb7)
- hmr: should update el for
HYDRATE_EVENTS
patchFlags node (#1707) (de62cc0) - reactivity: avoid tracking internal symbols in has trap (7edfdf7), closes #1683
- reactivity: fix ref mutation debugger event values (b7ef38b)
- runtime-core: dev root resolution should differentiate user comments vs v-if comments (355c052), closes #1704
- runtime-core: fix scheduler dedupe when not flushing (4ef5c8d)
- runtime-core: respect render function from mixins (354d79c), closes #1630
- runtime-core: scheduler should allow intentional self triggering effects (c27dfe1), closes #1727
- runtime-core: use correct container for moving
Teleport
content (#1703) (04a4eba) - style-vars: fix css vars on component with suspense as root (#1718) (07ece2e)
- v-model: enable v-model type detection on custom elements (0b3b1cf)
- runtime compilation marker should be applied in exposed compile function (b3b65b4)
- transition: should call transition hooks inside already resolved suspense (#1698) (2a633c8), closes #1689
- v-model: allow v-model usage on declared custom elements (71c3c6e), closes #1699
- reactivity:
proxyRefs
method andShallowUnwrapRefs
type (#1682) (aa06b10) - sfc: support resolving template components from
<script setup>
exports (6f5d840) - support delimiters option for runtime compilation (ba17c87), closes #1679
- reactivity: template auto ref unwrapping are now applied shallowly, i.e. only at the root level. See vuejs#1682 for more details.
3.0.0-rc.4 (2020-07-21)
- deps: move @babel/types back to dependencies (11c2ad4)
3.0.0-rc.3 (2020-07-21)
- build: make transition tree-shakeable again (ad199e1)
- compiler-sfc:
<style vars scoped>
prefixing should only apply to pre-transform source (4951d43), closes #1623 - compiler-sfc: use correct importer with
useCssVars
(#1658) (6f148d0) - runtime-core: do not use bail patchFlag on cloned vnodes (6390ddf), closes #1665
- runtime-core: fix attr fallthrough on compiled framgent w/ single static element + comments (1af3531)
- v-model: v-model listeners should not fallthrough to plain element root (c852bf1), closes #1643
- watch: fix watching reactive array (#1656) (288b4ea), closes #1655
- compiler-core/internal: add
onContextCreated
option togenerate
(#1672) (615dccd) - runtime-core: respect function name when using
defineComponent
function shorthand (#1661) (304830a) - provide ability to overwrite feature flags in esm-bundler builds (54727f9)
- computed: add readonly flag if no setter is provided (#1654) (dabdc5e)
3.0.0-rc.2 (2020-07-19)
- compiler-core: fix v-if + v-for on
<template>
(af7e100), closes #1637 - compiler-core/v-on: fix codegen for event handler with newlines (#1640) (f9826fa)
- compiler-sfc: use
filename
from options when compile styl preprocessor (#1635) (0526e5d) - keep-alive: handle "0" as cache key (#1622) (2deb0c7), closes #1621
- runtime-core/hmr: only use cloneNode mount optimization in prod (4655d69), closes #1626
- watch: callback not called when using
flush:sync
(#1633) (8facaef)
3.0.0-rc.1 (2020-07-17)
- types: deny unknown attributes on component by default (#1614) (5d8a64d), closes #1519
- types: expose
DeepReadonly
type (#1606) (527c2c8) - Initial devtools support (#1125) (568b6db)
3.0.0-beta.24 (2020-07-16)
- compiler-sfc: fix preprocessor filename access (9cb29ee)
3.0.0-beta.23 (2020-07-16)
- compiler-sfc: fix
useCssVars
codegen (9b5ff2b) - compiler-sfc: prohibit src usage for
<script setup>
+ do not (af4b0c2) - runtime-dom: unref when setting
useCssVars
(44e6da1) - slots: properly force update on forwarded slots (aab99ab), closes #1594
3.0.0-beta.22 (2020-07-15)
- compiler-core: generate incremental keys for
v-if/else-if/else
chains (#1589) (64c7b2f), closes #1587 - compiler-sfc:
<script setup>
warning (9146cc4) - hmr: fix hmr updates for reused hoisted trees (5f61aa0)
- runtime-core: do not call transition enter hooks when mounting in suspense (#1588) (246ec5c), closes #1583
- v-model: handle more edge cases in
looseEqual()
(#379) (fe1b27b)
3.0.0-beta.21 (2020-07-14)
- compiler-dom: fix v-on
.left
.right
modifier handling (6b63ba2) - runtime-core: avoid
scopeId
as attr for slot nodes with samescopeId
(#1561) (583a1c7), closes vitejs/vite#536 - runtime-core/emits: merge emits options from mixins/extends (ba3b3cd), closes #1562
- runtime-dom: remove attrs with nullish values (cb6a091), closes #1576
- runtime-dom/v-on: only block event handlers based on attach timestamp (8b320cc), closes #1565
- slots: differentiate dynamic/static compiled slots (65beba9), closes #1557
- v-on: capitalize dynamic event names (9152a89)
- v-on: refactor DOM event options modifer handling (380c679), closes #1567
- ssr support for
<style vars>
(b9595e6) - compiler-sfc:
<script setup>
support (experimental) (4c43d4e) - compiler-sfc:
<style vars>
CSS variable injection (bd5c3b9) - compiler-sfc: allow using :deep, :global & :slotted for short in
<style scoped>
(f3cc41f) - runtime-dom: useCssVars (9f706a9)
3.0.0-beta.20 (2020-07-08)
- compiler-core/v-on: bail caching for member expression handlers on components (87c2a1e), closes #1541
- compiler-dom: should ignore and warn side effect tags like script and style (5e52f4e)
- runtime-core: should allow v-model listeners to fallthrough, but ignore for warning (903e8f6), closes #1543
3.0.0-beta.19 (2020-07-07)
- compiler-core: add
\r
to accepted chars after end tag name (#1515) (64e2f46), closes #1476 - keep-alive: fix keep-alive with scopeId/fallthrough attrs (d86b01b), closes #1511
- runtime-core/template-ref: template ref used in the same template should trigger update (36b6b4f), closes #1505
- runtime-dom: should set
<input list="...">
as attribute (441c236), closes #1526 - runtime-dom/style: fix
patchStyle
on falsy next value (#1504) (77538ec), closes #1506 - ssr: support dynamic components that resolve to element or vnode (41db49d), closes #1508
- types/tsx: add
JSX.IntrinsicAttributes
definition (#1517) (a5b4332), closes #1516 - v-model: consistent nullish value handling with 2.x (#1530) (425335c), closes #1528
- v-model: should ignore compiled v-model listeners in attr fallthrough (6dd59ee), closes #1510
- watch: stop instance-bound watchers in post render queue (58b0706), closes #1525
3.0.0-beta.18 (2020-07-02)
- runtime-core: avoid accidental access of
Object.prototype
properties (f3e9c1b) - ensure vnode hooks are called consistently regardless of keep-alive (4e8e689)
- runtime-core: pass unmount into inital mount patch prop (2bdb5c1)
- runtime-dom: allow force updating value bindings for controlled inputs (b3536d8), closes #1471
- slots: make compiled slot marker non-enumerable (062835d), closes #1470
- runtime-core: support creating vnode from existing vnode (c9629f2)
3.0.0-beta.17 (2020-06-30)
- runtime-dom: allow force updating value bindings for controlled inputs (b3536d8), closes #1471
- slots: make compiled slot marker non-enumerable (062835d), closes #1470
3.0.0-beta.16 (2020-06-29)
- BaseTransition: collect correct children with slot passthrough in
Transition
(#1456) (d4cd128), closes #1455 - BaseTransition: fix
BaseTransition
delayed leave with modein-out
(#1404) (2ff8dca), closes #1400 - compiler-core: ignore comment nodes in transition children (e52b7cd), closes #1352
- compiler-core: should not prefix object method (#1375) (35dbef2)
- compiler-core: skip empty expressions when validating expressions in browser mode (afb231e)
- compiler-core/v-on: pass noninitial arguments in cached event handlers (#1265) (7e28173)
- compiler-sfc:
transformAssetUrl
should ignore inline data url (#1431) (90c285c) - runtime-core: always check props presence in public instance proxy (e0d19a6), closes #1236
- runtime-core:
cloneVNode
should preserve correct ctx instance when normalizing ref (be69bee), closes #1311 - runtime-core: component root should inherit
scopeId
fromVNode
(f3f94e4), closes #1399 - runtime-core: fix component name inference in warnings (e765d81), closes #1418
- runtime-core: fix parent el update on nested HOC self-update (#1360) (6c8bfa1), closes #1357
- runtime-core: fix
scopeId
inheritance for component inside slots (978d952) - runtime-core: handle patch flag de-op from cloned vnode (0dd5cde), closes #1426
- runtime-core: properly capitalize v-on object keys (#1358) (250eb4a)
- runtime-core: should remove no longer present camelCase props (#1413) (1c4e1b6), closes #1412
- slots: filter out compiler marker from resolved slots (70ea76a), closes #1451
- ssr: fix ssr scopeId on component root (afe13e0)
- ssr: handle fallthrough attrs in ssr compile output (d5dbd27)
- transition: enter/leave hook timing consistency with v2 (bf84ac8), closes #1145
- transition: fix appear hooks handling (7ae70ea)
- transition: fix css:false with hooks with no explicit done callback (9edbc27), closes #1149
- transition: fix dom transition cancel hooks not being called (acd3156)
- transition-group: vue 2 compatible handling of transition-group w/ multiple v-for children (86d3972), closes #1126
- types: ensure correct public props interface for
defineComponent
instance type (2961e14), closes #1385 - types: export
ComponentOptionsMixin
(#1361) (68e2d6c) - types: should unwrap array -> object -> ref (82b28a5)
- v-show: fix v-show unmount with falsy value (#1403) (d7beea0), closes #1401
- runtime-core: expose version on app instance (056cac9), closes #1449
- ssr:
renderToStream
(#1197) (6bc0e0a)
- compiler-core: treat v-for with constant exp as a stable fragment (#1394) (8a2cf21)
- reactivity: should not track
__v_isRef
(#1392) (c43a6e6) - ssr: avoid unnecessary await ticks when unrolling sync buffers (30584bc)
3.0.0-beta.15 (2020-06-12)
- build: retain main vue package side effect for compiler registration (dc986ad), closes #1263
- compiler-core: allow multiline expression on v-model and v-on (#1234) (958b6c8)
- compiler-core: bail static stringfication even threshold is met (#1298) (64ec8bf), closes #1128
- compiler-core: fix parsing for directive with dynamic argument containing dots (0d26413)
- compiler-core: support static slot names containing dots for 2.x compat (825ec15), closes #1241
- hmr: force full update on nested child components (#1312) (8f2a748)
- reactivity: fix toRaw for objects prototype inherting reactive (10bb34b), closes #1246
- runtime-core: should pass instance to patchProp on mount for event error handling (#1337) (aac9b03), closes #1336
- runtime-core: track access to $attrs (6abac87), closes #1346
- always treat spellcheck and draggable as attributes (4492b88), closes #1350
- compiler-core: fix prod whitespace/comment removal (f3623e4), closes #1256
- compiler-dom: add tfoot,caption,col element on bail stringification (#1333) (fbaf52a)
- compiler-dom: bail stringification on table elements (a938b61), closes #1230 #1268
- compiler-sfc: asset url transform should ignore direct hash urls (5ddd9d2)
- compiler-ssr: should escape template string interpolation chars in generated code (5f15d9a)
- hmr: force full update in child component on slot update (2408a65)
- reactivity: replaced ref in reactive object should be tracked (#1058) (80e1693)
- reactivity: shallowReactive collection to not-readonly (#1212) (c97d1ba)
- runtime-core: default value for function type prop (#1349) (d437a01), closes #1348
- runtime-core: mount children before setting element props (8084156), closes #1318 #1320
- runtime-core: respect props from mixins and extends (2417a0c), closes #1236 #1250
- runtime-core: use array destructuring instead of object for edge compat (#1302) (4a5021e), closes #1294
- runtime-dom: compatibility for cases where event.timeStamp is 0 (#1328) (90c3532), closes #1325
- ssr: fix unintended error on
Teleport
hydration mismatch (#1271) (c463a71), closes #1235 - types: add RawSlots in h signature (#1293) (cab769f)
- bail stringification for slots (9b5d13e), closes #1281 #1286
- ssr: should set ref on hydration (0a7932c)
- run ci (6b889e7)
- compiler: better warning for invalid expressions in function/browser mode (e29f0b3), closes #1266
- runtime-core: add inheritRef option + make
<transition>
&<keep-alive>
inherit refs (38f2d23) - types: adjust type exports for manual render function and tooling usage (e4dc03a), closes #1329
- types: mixins/extends support in TypeScript (#626) (d3c436a)
- types: support typing directive value via generic argument (#1007) (419b86d), closes #998
- types: update to Typescript 3.9 (#1106) (97dedeb)
- only patch string style when value has changed (#1310) (d4e9b19), closes #1309
- optimize LRU access in keep-alive (#1316) (1f2926a)
3.0.0-beta.14 (2020-05-18)
- compiler-dom: should bail stringification on runtime constant regardless of position (dd2bfb5), closes vuejs/vite#157
- reactivity: shallowReactive for collections (#1204) (488e2bc), closes #1202
- runtime-dom: event handlers with modifiers should get all event arguments (#1193) (ab86b19)
- Transition: fix validate duration (#1188) (d73a508)
- v-model: should not trigger updates during input composition (#1183) (83b7158)
- watch: support directly watching reactive object in multiple sources with deep default (#1201) (ba62ccd)
3.0.0-beta.13 (2020-05-17)
- improve static content stringification (d965bb6)
3.0.0-beta.12 (2020-05-11)
- hmr: static child traversal should only affect elements (2bc6a8c)
3.0.0-beta.11 (2020-05-11)
- hmr: always force full child component props update in HMR mode (1b946c8)
- hmr: ensure static nodes inherit DOM element in hmr mode (66c5a55), closes #1156
- runtime-core: should not take unmount children fast path for v-for fragments (5b8883a), closes #1153
- transition: should reset enter class after appear (#1152) (697de07)
- runtime-core: expose isVNode (a165d82)
3.0.0-beta.10 (2020-05-07)
- compiler: warn against v-bind with empty attribute value (675330b), closes github.com/vuejs/vue-next/issues/1128#issuecomment-624647434
- compiler-dom: bail static stringfication on non-attr bindings (304ab8c), closes #1128
- compiler-sfc: should not transform external asset url with (d662118)
- compiler-sfc: template with alt lang should be parsed as raw text (d10835a), closes #1120
- reactivity: fix
__proto__
access on proxy objects (#1133) (037fa07) - reactivity: use correct thisArg for collection method callbacks (#1132) (e08f6f0)
- runtime-dom/style: normalize string when merging styles (#1127) (2d9f136)
- compiler/types: convert compiler options documentation to jsdoc (e58beec)
- compiler-sfc: improve sfc source map generation (698c8d3)
- types: re-expose trasnformVNodeArgs (40166a8)
- compiler-sfc: improve asset url trasnform efficiency (c5dcfe1)
- compiler-sfc: only add character mapping if not whitespace (2f69167)
-
compiler/types:
getTextMode
compiler option signature has changed from(tag: string, ns: string, parent: ElementNode | undefined) => TextModes
to
(node: ElementNode, parent: ElementNode | undefined) => TextModes
3.0.0-beta.9 (2020-05-04)
- compiler: bail strigification on runtime constant expressions (f9a3766)
- transitionGroup: fix transition children resolving condition (f05aeea)
- compiler-sfc: support transforming absolute asset urls (6a0be88)
-
compiler-sfc:
@vue/compiler-sfc
'stransformAssetUrlsBase
option has been removed. It is merged intotrasnformAssetUrls
which now also accepts the format of{ base?: string includeAbsolute?: string tags?: { [name: string]: string[] } }
3.0.0-beta.8 (2020-05-04)
- hmr: handle cases where instances with same id having different definitions (01b7e90)
- reactivity: avoid polluting Object prototype (f40f3a0)
- reactivity: check own property for existing proxy of target (6be2b73), closes #1107
- transitionGroup: inner children should skip comment node (#1105) (26a50ce)
- types/reactivity: fix ref type inference on nested reactive properties with .value (bc1f097), closes #1111
- shared: support Map and Set in toDisplayString (3c60d40), closes #1067 #1100
- types: re-expose resolve asset utitlies and registerRuntimeCompiler in type definitions (64ef7c7), closes #1109
- watch: support directly watching reactive object with deep default (6b33cc4), closes #1110
3.0.0-beta.7 (2020-05-02)
- compiler-sfc: add transformAssetUrlsBase option (36972c2)
- types: re-expose
withDirectives
as public type (583ba0c)
3.0.0-beta.6 (2020-05-01)
- compiler-core: hoist pure annotations should apply to all nested calls (c5e7d8b)
- compiler-core: hoisted vnode calls and scoped id calls should be marked pure (cad25d9)
- compiler-ssr: handle comments codegen + refactor ssr codegen transform (6c60ce1)
- runtime-core: avoid infinite warning loop for isRef check on component public proxy (6233608), closes #1091
- runtime-core: cloned vnodes with extra props should de-opt (08bf7e3)
- runtime-core: fix slot fragment bail check (ac6a6f1)
- runtime-core: should call Suspense fallback unmount hook (#1061) (8b85aae), closes #1059
- runtime-core: should catch dom prop set TypeErrors (98bee59), closes #1051
- runtime-dom: should not coerce nullish values to empty strings for non-string dom props (20bc7ba), closes #1049 #1092 #1093 #1094
- ssr: fix escape and handling for raw Text, Comment and Static vnodes (5b09e74)
- teleport: teleport should always be tracked as dynamic child for unmount (7f23555), closes #1088
- types: augment ref unwrap bail types in appropriate packages (b40fcbc)
- types: mark internal API exports and exclude from d.ts (c9bf7de)
- runtime-core: warn against user properties with reserved prefixes (1bddeea)
- instance public proxy should never be observed (11f38d8)
- types: Internal APIs are now excluded from type declarations.
3.0.0-beta.5 (2020-04-30)
- compiler-ssr: avoid unnecessary withCtx import (08b4e88)
- hmr: support hmr for static nodes (386b093)
- hydration: fix text mismatch warning (e087b4e)
- keep-alive: do not invoke onVnodeBeforeUnmount if is KeepAlive component (#1079) (239270c)
- transition-group: should collect raw children with Fragment (#1046) (8ed3455), closes #1045
- warning: always check for component instance presence when formatting traces (a0e2c12)
- use more consistent naming for apiWatch type exports (892fb6d)
-
Some watch API types are renamed.
BaseWatchOptions
->WatchOptionsBase
StopHandle
->WatchStopHandle
3.0.0-beta.4 (2020-04-24)
- compiler-core: dynamic component should always be made blocks (7d0ab33), closes #1018
- runtime-core: dynamic component should support falsy values without warning (ded92f9)
- runtime-core: fix dynamic node tracking in dynamic component that resolves to plain elements (dcf2458), closes #1039
- runtime-core: fix key/ref resolution for cloneVNode (d7379c7), closes #1041
- runtime-core: mixin options that rely on this context should be deferred (ff4d1fc), closes #1016 #1029
- runtime-core: only infer component name for object components (e422b8b), closes #1023
- slots: compiled slot fallback should be functions (#1030) (2b19965), closes #1021
- types: fix ref(false) type to Ref (#1028) (0bdd889)
- types: make return type of
defineComponent
assignable toComponent
type (#1032) (f3a9b51), closes #993
- compiler-sfc: add preprocessCustomRequire option (20d425f)
- compiler-sfc: built-in support for css modules (fa216a0)
- reactivity: add triggerRef API (2acf3e8)
- types: expose
ToRefs
type (#1037) (28b4c31)
3.0.0-beta.3 (2020-04-20)
- runtime-core: should not cast prop value if prop did not change (171cfa4), closes #999
- warn: fix component name inference in warning trace (0278992)
- build: provide more specific warnings for runtime compilation (e954ba2), closes #1004
- runtime-core: improve warning for extraneous event listeners (#1005) (cebad64), closes #1001
- runtime-core: more specific warning for failed v-on fallthrough (ab844fd), closes #1001
- warn: infer anonymous component named based on resolve name (dece610)
3.0.0-beta.2 (2020-04-17)
- runtime-core: fix user attached public instance properties that start with "$" (d7ca1c5)
- watch: fix deep watchers on refs containing primitives (#984) (99fd158)
- types: expose
ComponentCustomOptions
for declaring custom options (c0adb67) - types: expose
ExtractPropTypes
(#983) (4cf5e07) - types add
ComponentCustomProperties
interface (#982) (be21cfb)
3.0.0-beta.1 (2020-04-16)
- reactivity: adjust APIs (09b4202)
- runtime-core: skip emit warn if has equivalent onXXX prop (0709380)
- runtime-core: use raw context on component options init (bfd6744)
- reactivity: Reactivity APIs adjustments:
-
readonly
is now non-tracking if called on plain objects.lock
andunlock
have been removed. Areadonly
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 byreactive
, or areadonly
proxy that wraps areactive
proxy. -
A new utility
isProxy
is introduced, which returns true for both reactive or readonly proxies. -
markNonReactive
has been renamed tomarkRaw
.
3.0.0-alpha.13 (2020-04-15)
- compiler-core: should not generate CLASS/STYLE patch flags on components (a6e2b10), closes #677
- runtime-core: fix kebab-case props update (7cbf684), closes #955
- runtime-core: should resolve value instead of delete for dynamic props with options (c80b857)
- runtime-dom: fix patching for attributes starting with
on
(6eb3399), closes #949 - runtime-dom: should patch svg innerHtml (#956) (27b5c71)
- runtime-dom/v-on: support event.stopImmediatePropagation on multiple listeners (d45e475), closes #916
- scheduler: sort jobs before flushing (78977c3), closes #910 /github.com/vuejs/vue-next/issues/910#issuecomment-613097539
- types: UnwrapRef should bail on DOM element types (#952) (33ccfc0), closes #951
- reactivity: remove stale API
markReadonly
(e8a866e) - runtime-core: remove emit return value (55566e8)
- reactivity: add support for
customRef
API (b83c580) - reactivity: add support for
toRef
API (486dc18) - runtime-core: detect and warn against components made reactive (2e06f5b), closes #962
- runtime-core: warn async data() (3e7bb7d)
-
reactivity:
markReadonly
has been removed. -
runtime-dom: Only props starting with
on
followed by an uppercase letter or a non-letter character are considered event listeners. -
runtime-core: this.$emit() and setupContext.emit() no longer return values. For logic that relies on return value of listeners, the listener should be declared as an
onXXX
prop and be called directly. This still allows the parent component to pass in a handler usingv-on
, sincev-on:foo
internally compiles toonFoo
.ref: vuejs/rfcs#16
3.0.0-alpha.12 (2020-04-08)
- compiler: should not condense
(8c17535), closes #945 - compiler: should only strip leading newline directly in pre tag (be666eb)
- compiler: support full range of entity decoding in browser builds (1f6e72b)
- compiler-core: elements with dynamic keys should be forced into blocks (d531686), closes #916
- reactivity: track reactive keys in raw collection types (5dcc645), closes #919
- runtime-core: fix globalProperties in check on instance render proxy (c28a919)
- runtime-core: set fragment root children should also update dynamicChildren (#944) (a27e9ee), closes #943
- runtime-dom: fix getModelAssigner order in vModelCheckbox (#926) (da1fb7a)
- runtime-dom: support native onxxx handlers (2302dea), closes #927
- slots: should update compiled dynamic slots (8444078)
- transition: fix dynamic transition update on nested HOCs (b8da8b2)
- transition: should ship props declarations in production (4227831)
- types: accept generic Component type in h() (c1d5928), closes #922
- v-model: handle dynamic assigners and array assigners (f42d11e), closes #923
- asyncComponent: add
onError
option for defineAsyncComponent (e804463) - runtime-core: improve component public instance proxy inspection (899287a)
- compiler: compiler options have been adjusted.
- new option
decodeEntities
is added. namedCharacterReferences
option has been removed.maxCRNameLength
option has been removed.
- new option
- asyncComponent:
retryWhen
andmaxRetries
options fordefineAsyncComponent
has been replaced by the more flexibleonError
option, per vuejs/rfcs#148
3.0.0-alpha.11 (2020-04-04)
- compiler: fix pre tag whitespace handling (7f30cb5), closes #908
- compiler-core/slots: should support on-component named slots (a022b63)
- compiler-sfc: always use offset for template block sourcemaps (#911) (db50009)
- inject: allow default value to be
undefined
(#894) (94562da), closes #892 - portal: portal should always remove its children when unmounted (16cd8ee)
- reactivity: scheduled effect should not execute if stopped (0764c33), closes #910
- runtime-core: support attr merging on child with root level comments (e42cb54), closes #904
- runtime-dom: v-cloak should be removed after compile on the root element (#893) (0ed147d), closes #890
- runtime-dom: properly support creating customized built-in element (b1d0b04)
- transition: warn only when there is more than one rendered child (#903) (37b1dc8)
- types: allow use PropType with Function (#915) (026eb72), closes #748
- types: export missing types from runtime-core (#889) (412ec86)
- types/reactivity: add generics constraint for markNonReactive (f3b6559), closes #917
- runtime-core: adjust attr fallthrough behavior (21bcdec)
- rename
<portal>
to<teleport>
(eee5095) - runtime-core: rename
createAsyncComponent
todefineAsyncComponent
(#888) (ebc5873)
- asyncComponent: retry support (c01930e)
- compiler-core: export
transformElement
from compiler-core (#907) (20f4965) - compiler-core: support v-is (b8ffbff)
- portal: hydration support for portal disabled mode (b74bab2)
- portal: SSR support for multi portal shared target (e866434)
- portal: SSR support for portal disabled prop (9ed9bf3)
- portal: support disabled prop (8ce3da0)
- portal: support multiple portal appending to same target (aafb880)
- reactivity: add effect to public api (#909) (6fba241)
- runtime-core: config.performance tracing support (e93e426)
- runtime-core: emits validation and warnings (c7c3a6a)
- runtime-core: failed component resolution should fallback to native element (cb31eb4)
- runtime-core: support app.config.globalProperties (27873db)
- runtime-core: type and attr fallthrough support for emits option (bf473a6)
- templateRef: should work with direct reactive property (449ab03), closes #901
- templateRef: support template ref for all vnode types (55b364d)
-
runtime-core: attribute fallthrough behavior has been adjusted according to vuejs/rfcs#154
-
<portal>
has been renamed to<teleport>
.target
prop is also renamed toto
, so the new usage will be:<Teleport to="#modal-layer" :disabled="isMobile"> <div class="modal"> hello </div> </Teleport>
The primary reason for the renaming is to avoid potential naming conflict with native portals.
-
asyncComponent: async component
error
andloading
options have been renamed toerrorComponent
andloadingComponent
respectively. -
runtime-core:
createAsyncComponent
has been renamed todefineAsyncComponent
for consistency withdefineComponent
.
3.0.0-alpha.10 (2020-03-24)
- fix option merge global mixins presence check (10ad965)
- compiler-core: assign patchFlag for template v-if fragment (a1da9c2), closes #850
- compiler-core: support interpolation in RCDATA mode (e.g. textarea) (0831b98)
- keep-alive: should update re-activated component with latest props (1237387)
- reactivity: should not observe frozen objects (1b2149d), closes #867
- reactivity: should not trigger map keys iteration when keys did not change (45ba06a), closes #877
- runtime-core: fix boolean props validation (3b282e7)
- runtime-dom: invalid lineGradient svg tag (#863) (d425818), closes #862
- TransitionGroup: ignore comment node when warn (fix#869) (#875) (0dba5d4)
- do not drop SFC runtime behavior code in global builds (4c1a193), closes #873
- dynamic component fallback to native element (f529dbd), closes #870
- runtime-core: fix component proxy props presence check (b3890a9), closes #864
- suspense: clear effects on suspense resolve (ebc1ca8)
- transition: fix duration prop validation (0dc2478), closes #868
- asyncComponent: SSR/hydration support for async component (cba2f1a)
- runtime-core: async component support (c3bb316)
- runtime-core: support
config.optionMergeStrategies
(528621b) - add hook for transforming h's arguments (#851) (b7d1e0f)
3.0.0-alpha.9 (2020-03-16)
- build: remove RUNTIME_COMPILE flag (206640a), closes #817
- compiler-core: fix property shorthand detection (586e5bb), closes #845
- compiler-ssr: fix input w/ v-bind="obj" codegen (3b40fc5)
- compiler-ssr: should pass necessary tag names for dynamic v-bind (a46f3b3)
- runtime-core: always set invalid vnode type (#820) (28a9bee)
- runtime-core: empty boolean props (#844) (c7ae269), closes #843
- runtime-core: pass instance proxy as data() argument (#828) (d9dd1d8)
- runtime-dom: patch xlink attribute (#842) (d318576)
- simplify and use correct ctx in withCtx (4dc8ffc)
- runtime-core: pass prev value to hostPatchProp (#809) (cd34603), closes #808
- runtime-core: should allow empty string and 0 as valid vnode key (#807) (54a0e93)
- types: app.component should accept defineComponent return type (#822) (1e9d131), closes #730
- runtime-core: adjust patchProp value arguments order (ca5f39e)
- compiler-core: wrap slot functions with render context (ecd7ce6)
- compiler-sfc: add ssr option (3b2d236)
- runtime-core: add special property to get class component options (#821) (dd17fa1)
- runtime-core: implement RFC-0020 (bb7fa3d)
- runtime-core: set context for manual slot functions as well (8a58dce)
- server-renderer: render suspense in vnode mode (#727) (589aeb4)
- ssr: compiler-ssr support for Suspense (80c625d)
- ssr: hide comment anchors during hydration in dev mode (cad5bcc)
- ssr: improve fragment mismatch handling (60ed4e7)
- ssr: support getSSRProps for vnode directives (c450ede)
- ssr/suspense: suspense hydration (a3cc970)
- types: export
ErrorTypes
(#840) (760c3e0)
- Revert "refactor(directives): remove binding.instance" (2370166)
-
runtime-core: data no longer supports object format (per RFC-0020)
-
runtime-core:
RendererOptions.patchProp
arguments order has changedThe
prevValue
andnextValue
position has been swapped to keep it consistent with other functions in the renderer implementation. This only affects custom renderers using thecreateRenderer
API.
3.0.0-alpha.8 (2020-03-06)
- directives: ignore invalid directive hooks (7971b04), closes #795
- portal: fix portal placeholder text (4397528)
- reactivity: allow effect trigger inside no-track execution contexts (274f81c), closes #804
- reactivity: Map/Set identity methods should work even if raw value contains reactive entries (cc69fd7), closes #799
- reactivity: should not trigger length dependency on Array delete (a306658), closes #774
- runtime-core: ensure inhertied attrs update on optimized child root (6810d14), closes #677 #784
- slots: fix conditional slot (3357ff4), closes #787
- ssr: fix ssr on-the-fly compilation + slot fallback branch helper injection (3be3785)
- runtime-core: adjust attr fallthrough behavior (e1660f4), closes #749
- runtime-core: revert setup() result reactive conversion (e67f655)
- compiler-core: switch to @babel/parser for expression parsing (8449a97)
- compiler-ssr: compile portal (#775) (d8ed0e7)
- ssr: hydration mismatch handling (91269da)
-
runtime-core: adjust attr fallthrough behavior
Updated per pending RFC vuejs/rfcs#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
-
-
runtime-core: revert setup() result reactive conversion
Revert 6b10f0c & a840e7d. The motivation of the original change was avoiding unnecessary deep conversions, but that can be achieved by explicitly marking values non-reactive via
markNonReactive
.Removing the reactive conversion behavior leads to an usability issue in that plain objects containing refs (which is what most composition functions will return), when exposed as a nested property from
setup()
, will not unwrap the refs in templates. This goes against the "no .value in template" intuition and the only workaround requires users to manually wrap it again withreactive()
.So in this commit we are reverting to the previous behavior where objects returned from
setup()
are implicitly wrapped withreactive()
for deep ref unwrapping.
3.0.0-alpha.7 (2020-02-26)
- renderSlot: set slot render as a STABLE_FRAGMENT (#776) (8cb0b83), closes #766
- runtime-core: fix slot fallback + slots typing (4a5b91b), closes #773
- runtime-core: make watchEffect ignore deep option (#765) (19a799c)
- runtime-core: set appContext.provides to Object.create(null) (#781) (04f83fa)
- template-explorer: rename watch -> watchEffect (#780) (59393dd)
- template-ref: fix string template refs inside slots (3eab143)
- types: ref value type unwrapping should happen at creation time (d4c6957)
- types: shallowRef should not unwrap value type (3206e5d)
- directives: remove binding.instance (52cc7e8)
-
directives: custom directive bindings no longer expose instance
This is a rarely used property that creates extra complexity in ensuring it points to the correct instance. From a design perspective, a custom directive should be scoped to the element and data it is bound to and should not have access to the entire instance in the first place.
3.0.0-alpha.6 (2020-02-22)
- compiler-core: should alias name in helperString (#743) (7b987d9), closes #740
- compiler-dom: properly stringify class/style bindings when hoisting static strings (1b9b235)
- reactivity: should trigger all effects when array length is mutated (#754) (5fac655)
- sfc: inherit parent scopeId on child root (#756) (9547c2b)
- types: improve ref typing, close #759 (627b9df)
- types: update setup binding unwrap types for 6b10f0c (a840e7d), closes #738
- effect: optimize effect trigger for array length mutation (#761) (76c7f54)
- reactivity: only trigger all effects on Array length mutation if new length is shorter than old length (33622d6)
-
runtime-core: replace
watch(fn, options?)
withwatchEffect
The
watch(fn, options?)
signature has been replaced by the newwatchEffect
API, which has the same usage and behavior.watch
now only supports thewatch(source, cb, options?)
signature. -
reactivity: reactive arrays no longer unwraps contained refs
When reactive arrays contain refs, especially a mix of refs and plain values, Array prototype methods will fail to function properly - e.g. sort() or reverse() will overwrite the ref's value instead of moving it (see #737).
Ensuring correct behavior for all possible Array methods while retaining the ref unwrapping behavior is exceedingly complicated; In addition, even if Vue handles the built-in methods internally, it would still break when the user attempts to use a 3rd party utility function (e.g. lodash) on a reactive array containing refs.
After this commit, similar to other collection types like Map and Set, Arrays will no longer automatically unwrap contained refs.
The usage of mixed refs and plain values in Arrays should be rare in practice. In cases where this is necessary, the user can create a computed property that performs the unwrapping.
3.0.0-alpha.5 (2020-02-18)
- compiler: fix v-for fragment openBlock argument (12fcf9a)
- compiler-core: fix keep-alive when used in templates (ade07c6), closes #715
- compiler-core: only check is prop on
<component>
(78c4f32) - compiler-core: relax error on unknown entities (730d329), closes #663
- compiler-core: should apply text transform to if branches (e0f3c6b), closes #725
- compiler-core: should not hoist element with cached + merged event handlers (5455e8e)
- compiler-dom: fix duplicated transforms (9e51297)
- compiler-sfc: handle empty nodes with src attribute (#695) (2d56dfd)
- compiler-ssr: import helpers from correct packages (8f6b669)
- computed: support arrow function usage for computed option (2fb7a63), closes #733
- reactivity: avoid cross-component dependency leaks in setup() (d9d63f2)
- reactivity: effect should handle self dependency mutations (e8e6772)
- reactivity: trigger iteration effect on Map.set (e1c9153), closes #709
- runtime-core: ensure renderCache always exists (8383e54)
- runtime-core: fix keep-alive tree-shaking (5b43764)
- runtime-core: fix ShapeFlags tree shaking (0f67aa7)
- runtime-core: handle component updates with only class/style bindings (35d91f4)
- runtime-core: render context set should not unwrap reactive values (27fbfbd)
- runtime-core: rework vnode hooks handling (cfadb98), closes #684
- runtime-core: should not return early on text patchFlag (778f3a5)
- runtime-core/scheduler: avoid duplicate updates of child component (8a87074)
- runtime-core/scheduler: invalidate job (#717) (fe9da2d)
- runtime-core/watch: trigger watcher with undefined as initial value (#687) (5742a0b), closes #683
- runtime-dom/ssr: properly handle xlink and boolean attributes (e6e2c58)
- ssr: avoid hard-coded ssr checks in cjs builds (bc07e95)
- ssr: fix class/style rendering + ssrRenderComponent export name (688ad92)
- ssr: render components returning render function from setup (#720) (4669215)
- transition-group: handle multiple move-classes (#679) (5495c70), closes #678
- types: app.component should accept defineComponent return type (57ee5df), closes #730
- types: ensure correct oldValue typing based on lazy option (c6a9787), closes #719
- v-on: transform click.right and click.middle modifiers (028f748), closes #735
- remove effect from public API (4bc4cb9), closes #712
- v-model: should use dynamic directive on input with dynamic v-bind (1f2de9e)
- watch: adjust watch API behavior (9571ede)
- compiler: mark hoisted trees with patchFlag (175f8aa)
- compiler: warn invalid children for transition and keep-alive (4cc39e1)
- compiler-core: support mode: cjs in codegen (04da2a8)
- compiler-core/v-on: support @vnode-xxx usage for vnode hooks (571ed42)
- compiler-dom: handle constant expressions when stringifying static content (8b7c162)
- compiler-dom/runtime-dom: stringify eligible static trees (27913e6)
- reactivity: add shallowReactive function (#689) (7f38c1e)
- runtime-core/reactivity: expose shallowReactive (#711) (21944c4)
- server-renderer: support on-the-fly template compilation (#707) (6d10a6c)
- ssr: render portals (#714) (e495fa4)
- ssr: support portal hydration (70dc3e3)
- ssr: useSSRContext (fd03149)
- prevent renderer hot functions being inlined by minifiers (629ee75)
- reactivity: better computed tracking (#710) (8874b21)
-
watch:
watch
behavior has been adjusted.-
When using the
watch(source, callback, options?)
signature, the callback now fires lazily by default (consistent with 2.x behavior).Note that the
watch(effect, options?)
signature is still eager, since it must invoke theeffect
immediately to collect dependencies. -
The
lazy
option has been replaced by the oppositeimmediate
option, which defaults tofalse
. (It's ignored when using the effect signature) -
Due to the above changes, the
watch
option in Options API now behaves exactly the same as 2.x. -
When using the effect signature or
{ immediate: true }
, the initial execution is now performed synchronously instead of deferred until the component is mounted. This is necessary for certain use cases to work properly withasync setup()
and Suspense.The side effect of this is the immediate watcher invocation will no longer have access to the mounted DOM. However, the watcher can be initiated inside
onMounted
to retain previous behavior.
-
3.0.0-alpha.4 (2020-01-27)
- reactivity: Array methods relying on identity should work with raw values (aefb7d2)
- runtime-core: instance should not expose non-declared props (2884831)
- runtime-dom: should not access document in non-browser env (48152bc), closes #657
- v-model/emit: update:camelCase events should trigger kebab case equivalent (2837ce8), closes #656
- adjust
createApp
related API signatures (c07751f) - remove implicit reactive() call on renderContext (6b10f0c)
- ssr: avoid unnecessary async overhead (297282a)
-
object returned from
setup()
are no longer implicitly passed toreactive()
.The renderContext is the object returned by
setup()
(or a new object if no setup() is present). Before this change, it was implicitly passed toreactive()
for ref unwrapping. But this has the side effect of unnecessary deep reactive conversion on properties that should not be made reactive (e.g. computed return values and injected non-reactive objects), and can lead to performance issues.This change removes the
reactive()
call and instead performs a shallow ref unwrapping at the render proxy level. The breaking part is when the user returns an object with a plain property fromsetup()
, e.g.return { count: 0 }
, this property will no longer trigger updates when mutated by a in-template event handler. Instead, explicit refs are required.This also means that any objects not explicitly made reactive in
setup()
will remain non-reactive. This can be desirable when exposing heavy external stateful objects onthis
. -
createApp
API has been adjusted.createApp()
now accepts the root component, and optionally a props object to pass to the root component.app.mount()
now accepts a single argument (the root container)app.unmount()
no longer requires arguments.
New behavior looks like the following:
const app = createApp(RootComponent) app.mount('#app') app.unmount()
3.0.0-alpha.3 (2020-01-22)
- Suspense should include into dynamic children (#653) (ec63623), closes #649
- compiler-core: avoid override user keys when injecting branch key (#630) (aca2c2a)
- compiler-core: force
<svg>
into blocks for correct runtime isSVG (f2ac28b) - compiler-sfc: only transform relative asset URLs (#628) (c71ca35)
- dom: fix
<svg>
and<foreignObject>
mount and updates (4f06eeb) - runtime-core: condition for parent node check should be any different nodes (c35fea3), closes #622
- runtime-core: isSVG check should also apply for patch branch (035b656), closes #639
- runtime-core: should not warn unused attrs when accessed via setup context (751d838), closes #625
- transition: handle multiple transition classes (#638) (#645) (98d50d8)
- runtime-core: emit now returns array of return values from all triggered handlers (e81c8a3), closes #635
- runtime-core: support app.unmount(container) (#601) (04ac6c4), closes #593
3.0.0-alpha.2 (2020-01-13)
- compiler/v-on: handle multiple statements in v-on handler (close #572) (137893a)
- compiler/v-slot: handle implicit default slot mixed with named slots (2ac4b72)
- reactivity: should delete observe value (#598) (63a6563), closes #597
- runtime-core: allow classes to be passed as plugins (#588) (8f616a8)
- runtime-core: should preserve props casing when component has no declared props (bb6a346), closes #583
- runtime-core/renderer: fix v-if toggle inside blocks (2e9726e), closes #604 #607
- runtime-core/vnode: should not render boolean values in vnode children (close #574) (84dc5a6)
- types: components options should accept components defined with defineComponent (#602) (74baea1)
- watch: remove recorded effect on manual stop (#590) (453e688)
3.0.0-alpha.1 (2020-01-02)
- runtime-core: pass options to plugins (#561) (4d20981)
- sfc: treat custom block content as raw text (d6275a3)
- mounting new children (7d436ab)
- core: clone mounted hoisted vnodes on patch (47a6a84)
- fragment: perform direct remove when removing fragments (2fdb499)
- hmr: root instance reload (eda495e)
3.0.0-alpha.0 (2019-12-20)
For changes between 2.x and 3.0 up to this release, please refer to merged RFCs here.