Features
- add exports field + mjs build (d317237)
- expose set/del as named exports (5673363)
This release includes full Composition API support, including:
setup() support in components
- Reactivity APIs (
ref(), reactive() etc.)
- Lifecycle hooks (
onMounted() etc.)
provide() and inject()
useSlots() and useAttrs()
- template refs with
setup()
Behavior difference from Vue 3
- The reactivity system is still getter/setter based and does not use Proxies, so all Vue 2 change detection caveats still apply.
reactive(), ref(), and shallowReactive() will directly convert original objects instead of creating proxies. They also do not convert properties with symbol keys.
- Avoid using arrays as root values in
reactive() because without property access the array's mutation won't be tracked (this will result in a warning).
readonly() does create a separate object, but it won't track newly added properties and does not work on arrays.
Notes on API exposure
In ESM builds, these APIs are provided as named exports (and named exports only):
import Vue, { ref } from 'vue'
Vue.ref // undefined, use named export instead
When bundling with CJS builds externalized, bundlers should be able to handle ESM interop when externalizing CJS builds.
In UMD builds, these APIs are exposed on the global Vue object.
In addition:
h(), set(), del() and nextTick() are now also provided as named exports in ESM builds.
Bug Fixes
- v-on: add removing all dom event listeners when vnode destroyed (#10085) (3d29ba8)
Features
2.6.14 (2021-06-07)
Bug Fixes
Features
- ssr: vue-ssr-webpack-plugin compatible with webpack 5 (#12002) (80e7730)
2.6.13 (2021-06-01)
Bug Fixes
- attrs: do not consider translate attribute as boolean (#11392) (cd57393), closes #11391
- compiler: Allow BigInt usage in templates (#11152) (c42b706)
- compiler: avoid converting &nbps; to spaces (#11065) (55a30cf)
- compiler: event handlers with modifiers swallowing arguments (fix #10867) (#10958) (8620706)
- core: fix sameVnode for async component (#11107) (5260830)
- core: remove trailing comma in function signature (#10845) (579e1ff), closes #10843
- errorHandler: async error handling for watchers (#9484) (e4dea59)
- force update between two components with and without slot (#11795) (77b5330)
- give correct namespace in foreignObject (#11576) (af5e05d), closes #11575
- handle async placeholders in normalizeScopedSlot (#11963) (af54514)
- keep-alive: cache what is really needed not the whole VNode data (#12015) (e7baaa1)
- parser: allow multiple slots with new syntax (#9785) (67825c2), closes #9781
- pause dep collection during immediate watcher invocation (#11943) (987f322)
- props: correctly warn when a provided prop is Symbol (#10529) (abb5ef3), closes #10519
- props: support BigInt in props type validation (#11191) (fa1f81e)
- slot: add a function to return the slot fallback content (#12014) (ce457f9)
- ssr: avoid missing files in manifest (#11609) (b97606c)
- ssr: inheritAttrs false adds attributes to html (#11706) (7e5dc6b)
- ssr: textarea keeps undefined/null values (#11121) (b8bd149)
- types: add types for Vue.util.warn function (#11964) (e0274e4), closes /github.com/vuejs/vue/blob/v2.6.12/src/core/util/debug.js#L18-L26
- types: allow string for watch handlers in options (#10396) (668e1e6)
- types: allow symbol & boolean for vnode key (#11914) (5c459f0)
- types: changed expression type to optional string (#11189) (7c75462), closes #10871
- types: make $refs undefined possible (#11112) (2b93e86)
- v-on: avoid events with empty keyCode (autocomplete) (#11326) (c6d7a6f)
- v-pre: do not alter attributes (#10088) (0664cb0), closes #10087
- vdom: avoid executing root level script tags (#11487) (fb16d7b), closes #11483
- warn: better message with no constructors props (#9241) (6940131)
- warns: modify
maybeComponent function in parser (#10167) (0603ff6), closes #10152
Features
- warns: avoid warning native modifiers on dynamic components (#11052) (3d46692)
- warn: warn computed conflict with methods (#10119) (3ad60fe)
Performance Improvements
2.6.12 (2020-08-20)
Bug Fixes
2.6.11 (2019-12-13)
Bug Fixes
2.6.10 (2019-03-20)
Bug Fixes
- codegen: support named function expression in v-on (#9709) (3433ba5), closes #9707
- core: cleanup timeouts for async components (#9649) (02d21c2), closes #9648
- core: only unset dom prop when not present (f11449d), closes #9650
- core: use window.performance for compatibility in JSDOM (#9700) (653c74e), closes #9698
- scheduler: revert timeStamp check (22790b2), closes #9729 #9632
- slots: fix slots not updating when passing down normal slots as $scopedSlots (ebc1893), closes #9699
- types: allow using functions on the PropTypes (#9733) (df4af4b), closes #9692
- types: support string type for style in VNode data (#9728) (982d5a4), closes #9727
2.6.9 (2019-03-14)
Bug Fixes
- compiler: whitespace: 'condense' should honor pre tag as well (#9660) (f1bdd7f)
- event timeStamp check for Qt (7591b9d), closes #9681
- scheduler: fix getNow check in IE9 (#9647) (da77d6a), closes #9632
- scheduler: getNow detection can randomly fail (#9667) (ef2a380)
- should consider presence of normal slots when caching normalized scoped slots (9313cf9), closes #9644
- should not swallow user catch on rejected promise in methods (7186940), closes #9694
- should use fallback for scoped slots with single falsy v-if (781c705), closes #9658
- ssr: fix nested async functional componet rendering (#9673) (8082d2f), closes #9643
- ssr: not push non-async css files into map (#9677) (d282400)
- transition: fix appear check for transition wrapper components (#9668) (4de4649)
- v-bind object should be overridable by single bindings (#9653) (0b57380), closes #9641
2.6.8 (2019-03-01)
Bug Fixes
- avoid compression of unicode sequences by using regexps (#9595) (7912f75), closes #9456
- compiler: set end location for incomplete elements (#9598) (cbad54a)
- fix modifier parsing for dynamic argument with deep path (#9585) (060c3b9), closes #9577
- further adjust max stack size (571a488), closes #9562
- handle async component when parent is toggled before resolve (#9572) (ed34113), closes #9571
- scoped slots dynamic check should include v-for on element itself (2277b23), closes #9596
- types: allow scoped slots to return a single VNode (#9563) (241eea1)
- types: update this for nextTick api (#9541) (f333016)
2.6.7 (2019-02-21)
Bug Fixes
- #9511: avoid promise catch multiple times (#9526) (2f3020e), closes #9511 #9511 #9511 #9511
- avoid errors thrown during dom props update (8a80a23), closes #9459
- avoid possible infinite loop by accessing observables in error handler (#9489) (ee29e41)
- compiler: handle negative length in codeframe repeat (7a8de91)
- ensure generated scoped slot code is compatible with 2.5 (7ec4627), closes #9545
- ensure scoped slots update in conditional branches (d9b27a9), closes #9534
- scoped slots should update when inside v-for (8f004ea), closes #9506
2.6.6 (2019-02-12)
Bug Fixes
- ensure scoped slot containing passed down slot content updates properly (21fca2f)
- fix keyCode check for Chrome autofill fake key events (29c348f), closes #9441
2.6.5 (2019-02-11)
Bug Fixes
- allow passing multiple arguments to scoped slot (e7d49cd), closes #9468
- bail out of event blocking for iOS bug (0bad7e2), closes #9462
- do not cache scoped slots when mixed with normal slots (060686d)
2.6.4 (2019-02-08)
Bug Fixes
- avoid breaking avoriaz edge case (9011b83)
- avoid logging same error twice when thrown by user in global handler (ca57920), closes #9445
- empty scoped slot should return undefined (57bc80a), closes #9452
- expose v-slot slots without scope on this.$slots (0e8560d), closes #9421 #9458
- new syntax slots without scope should also be exposed on functional slots() (8a80086)
Performance Improvements
- cache result from functional ctx.slots() calls (7a0dfd0)
- skip scoped slots normalization when possible (099f3ba)
2.6.3 (2019-02-06)
Bug Fixes
- async component should use render owner as force update context (b9de23b), closes #9432
- avoid exposing internal flags on $scopedSlots (24b4640), closes #9443
- bail out scoped slot optimization when there are nested scopes (4d4d22a), closes #9438
- compiler: fix v-bind dynamic arguments on slot outlets (96a09aa), closes #9444
- skip microtask fix if event is fired from different document (dae7e41), closes #9448
- skip microtask fix in Firefix <= 53 (7bc88f3), closes #9446
- types: add Vue.version to types (#9431) (54e6a12)
Reverts
- feat: expose all scoped slots on this.$slots (d5ade28)
2.6.2 (2019-02-05)
Bug Fixes
- always set transformed model value on attrs (b034abf)
- restore slot-scope + v-if behavior (44a4ca3), closes #9422
Features
- expose all scoped slots on this.$slots (0129b0e), closes #9421
2.6.1 (2019-02-04)
Bug Fixes
2.6.0 (2019-02-04)
Bug Fixes
- allow more enumerated values for contenteditable (e632e9a), closes #9397
- fix child forceUpdate regression (44a17ba), closes #9396
- fix v-bind:style for camelCase properties with !important (#9386) (539e481)
- template v-slot should work with v-else conditions (2807fd2)
Features
- move v-bind.prop shorthand behind flag (64f863b)
Features
- detect and warn invalid dynamic argument expressions (c9e3a5d)
Bug Fixes
- async edge case fix should apply to more browsers (ba0ebd4)
- fix checkbox event edge case in Firefox (1868561)
Features
- adjust v-slot per RFC + enable flag (67e85de)
- dynamic directive arguments for v-on, v-bind and custom directives (#9373) (dbc0582)
- ssr: allow template option to be function in renderToString (#9324) (b65f6d7)
- update new slot syntax per RFC revision (4fca045)
- warning for ambiguous v-slot usage (8d84572)
Performance Improvements
- improve scoped slots change detection accuracy (#9371) (f219bed)
Bug Fixes
- allow _ in watch paths (element compat) (8b382b3)
- always use microtasks for nextTick (#8450) (850555d), closes #7109 #7546 #7707 #7834 #8109 #6566
- core: dedupe lifecycle hooks during options merge (edf7df0), closes #9199
- core: fix merged twice bug when passing extended constructor to mixins (#9199) (5371617), closes #9198
- cover more cases in v-on inline return value (9432737)
- ensure only nromalize a scoped slot when it is present (5fb23d4)
- ensure proxied normal slot uses correct key (b32c4b6)
- make transition-group key warning a tip to avoid breaking compilation (d08b49f)
- next-tick: revert
60da366 (080dd97), closes #8436
- provide/inject: Merges symbol provides (#7926) (1933ee8)
- return inline invocation return value in v-on handlers (0ebb0f3), closes #7628
- runtime: DevTools recommendation shows for all browsers (#8638) (22ad266), closes #8634
- scoped-slots: ensure $scopedSlots calls always return Arrays (c7c13c2), closes #8056
- ssr: properly handle invalid and numeric style properties (7d9cfeb), closes #9231
- ssr: should not render invalid numeric style values (17d8bcb)
- ssr: should render 0 as valid value for style property with unit (aef5b4e)
Features
- add browser ESM build (861abf4)
- add Vue.observable() for explicitly creating observable objects (c50bbde)
- compiler/watch: allow unicode characters in component names and watch paths (#8666) (9c71852), closes #8564
- compiler: add whitespace option, deprecate preserveWhitespace option (e1abedb), closes #9208
- compiler: expose generateCodeFrame method (a4ed58c)
- compiler: output codeframe in browser compiler (325fc76)
- compiler: output source range for compiler errors (#7127) (b31a1aa), closes #6338
- compiler: support deindent: false in vue-template-compiler (#7215) (bf0efb0), closes #7054
- config: expose config.useEventDelegation and default to false (3be1c5d)
- core: expose all slots on $scopedSlots as functions (5d52262)
- errors: sync/async error handling for lifecycle hooks and v-on handlers (#8395) (6e9fcfc), closes #6953 #7653
- expose performance measures (9ae80ac), closes #7570
- functional: add scopedSlots to context in functional components (#7941) (fb6aa06)
- new scoped slot syntax implementation update per rfc (c5c354d)
- ssr: Add 'nonce' option to context for ssr outlet script (#8047) (f036cce), closes #7479
- ssr: add custom state serializer option (4494012), closes #6614
- ssr: allow opting-out of caching by returning false in serverCacheKey (ab24285), closes #8790
- ssr: ssrPrefetch option + context.rendered hook (#9017) (d7a533d)
- support .property shorthand syntax for v-bind.prop modifier (d2902ca), closes #7582
- support custom toString() in text interpolation and v-html (#8217) (0e4e45e), closes #8093
- support slot-props and its shorthand (584e89d)
- support v-html for SVG elements (#8652) (a981c80)
- types: add Prop to main type declaration file (#6856) (5791072), closes #6850
- types: add types for vue-template-compiler (#7918) (ced774b)
- use event delegation when possible (b7f7f27), closes #6566
- v-bind.sync also listens for kebab-case update event (#8297) (3fca527), closes #6428
- v-for: support iterables in v-for (#8179) (d40eb9c)
2.5.22 (2019-01-11)
Bug Fixes
- async component: memory leak after synchronous async loading (#9275) (d21e931), closes #9229
- core: dedupe lifecycle hooks during options merge (0d2e9c4), closes #9199
- core: fix merged twice bug when passing extended constructor to mixins (#9199) (743edac), closes #9198
- ssr: support rendering comment (#9128) (b06c784)
2.5.21 (2018-12-11)
Bug Fixes
- fix single v-for child optimization (847e493)
- fix v-for component with undefined value (4748760), closes #9181
- lifecycle: beforeUpdated should not be called if component is destroyed (#9171) (87bad80), closes #8076
- types: accept primatives and falsy values in createElement children (#9154) (d780dd2), closes #8498
- v-model: properly handle multiline v-model expressions (#9184) (3d44937), closes #9183
- weex: support data class type that is string (#9139) (d8285c5), closes #9124
Performance Improvements
- skip normalization on single child element v-for (4074104)
Reverts
- "chore: use keypress in TodoMVC example for IME input methods (#9172)" (80fb6b8)
2.5.20 (2018-12-10)
Bug Fixes
2.5.19 (2018-12-09)
Bug Fixes
- ssr: should not warn for custom directives that do not have ssr implementation (780dac5), closes #9167
- vdom: remove unnecessary sameVnode condition (0d4b35f), closes #9168
Reverts
- fix(sfc): avoid deindent when pad option is specified (#7647) (5d721a4)
2.5.18 (2018-12-07)
Bug Fixes
- compiler: fix codegen for v-for component inside template (1b4a8a0), closes #9142
- fix keyName checking for space and delete in IE11 (#9150) (0ed0aad), closes #9112
- ssr: fix ssr template publicPath generation (f077ed1), closes #9145
- transition-group: fix activeInstance regression (8a2dbf5), closes #9151
- types: correct scopedSlot types (#9131) (448ba65), closes #8946
- types: type support for advanced async components (#8438) (dfaf9e2)
Bug Fixes
Features
Reverts
- Revert "perf: avoid unnecessary re-renders when computed property value did not change (#7824)" (6b1d431), closes #7824
Bug Fixes
- add missing
asyncMeta during VNode cloning (#7861) (8227fb3)
- beforeUpdate should be called before render and allow state mutation (#7822) (b7445a2), closes #7481
- codegen: support IE11 and Edge use of "Esc" key (#7887) (1bd6196), closes #7880
- correct the
has implementation in the _renderProxy (#7878) (7b38739)
- ensure init/prepatch hooks are still repsected (de42278), closes vue-router#1338
- invoke component node create hooks before insertion (#7823) (f43ce3a), closes #7531
- observer: invoke getters on initial observation if setter defined (#7828) (7a145d8)
Performance Improvements
- avoid unnecessary re-renders when computed property value did not change (#7824) (653aac2), closes #7767
Reverts
- Revert "refactor: remove unnecessary checks (#7875)" (903be9b), closes #7875
2.5.16 (2018-03-13)
Bug Fixes
- allow multiline expression in v-for (71b4b25), closes #7792
- core: Make set/delete warning condition for undefined, null and (#7818) (9084747), closes #7452
- fix keyName checking for arrow keys in IE11 (4378fc5), closes #7806
- fix regression on duplicate component init when using shared data objects (984927a), closes #7805
- fix wrongly matched named slots in functional components (62a922e), closes #7817
- keep-alive: run prune after render for correct active component check (215f877), closes #7566
- model: fix static input type being overwritten by v-bind object (#7819) (a6169d1), closes #7811
- named slots for nested functional components (6dd73e9), closes #7710
- ssr: fix SSR for async functional components (882e719), closes #7784
- ssr: fix v-show inline style rendering when style binding is array (#7814) (1a979c4), closes #7813
2.5.15 (2018-03-10)
Bug Fixes
- do not traverse VNodes when regsitering dependencies (84a9a9d), closes #7786
2.5.14 (2018-03-09)
Bug Fixes
- address potential regex backtrack (cd33407)
- allow codebase to be inlined directly in HTML (#7314) (dccd182), closes #7298
- always install composition event listeners (f7ca21e), closes #7367
- clean up custom events when patched component no longer have events (d8b0838), closes #7294
- codegen: support filters with () in older browsers (#7545) (dc97a39), closes #7544
- core: disable dependency collection in lifecycle hooks and data getter (#7596) (318f29f), closes #7573
- core: handle edge cases for functional component returning arrays (8335217), closes #7282
- do not special case attributes for custom elements (50b711a), closes #6864 #6885
- fix config.productionTip (ced00b1), closes #7565
- fix ssr env detection in weex (#7375) (3eb37ac)
- inject: use hasOwn instead of 'in' for provideKey check (#7460) (733c1be), closes #7284
- install ssr helpers for functional context during SSR (9b22d86), closes #7443 nuxt/nuxt.js#2565
- model: fix array index binding for v-model checkbox (#7671) (550c3c0), closes #7670
- observer: do not invoke getters on initial observation (#7302) (7392dfc), closes #7280
- ref: allow ref key to be zero (#7676) (e396eb3), closes #7669
- respect type order when boolean casting multi-typed props (81e1e47), closes #7485
- show: prevent transitions from starting on change truthy values (#7524) (013d980), closes #7523
- skip v-model & value binding collision check with dynamic type binding (#7406) (1c0b4af), closes #7404
- support KeyboardEvent.key in built-in keyboard event modifiers (#7121) (1c8e2e8), closes #6900
- transition: should not add transition class when cancelled (#7391) (5191f13), closes #7390
- types: add missing
listeners type on RenderContext (#7584) (db1b18c)
- types: contravariant generic default in ComponentOption (#7369) (6ee6849)
- types: fix wrong errorCaptured type (#7712) (6b8516b)
- types: make render option in functional components to optional (#7663) (b2092db)
- types: make VNodeChildrenArrayContents type more accurate (#7287) (49aae6b)
- types: prefer normal component over functional one (#7687) (144bf5a)
- v-model: handle trailing whitespaces in expression (#7737) (db58493)
- v-on: return handler value when using modifiers (#7704) (6bc75ca)
- vdom: svg inside foreignObject should be rendered with correct namespace (fix #7330) (#7350) (0529961)
- weex: default value for editor, fix #7165 (#7286) (e055df8)
Features
- support v-model dynamic type binding for v-bind="object" (41838c8), closes #7296
- weex: adjust framework entry APIs and add flow annotations (#7272) (472a289)
- weex: support parse object literal in binding attrs and styles (#7291) (ff8fcd2)
- weex: update new syntax for (7cc0b55)
- weex: update weex recycle-list compiler (#7610) (d6200d7)
2.5.13 (2017-12-19)
Reverts
- Revert "feat: auto cache inline prop literals to avoid child re-render" (aac7634)
2.5.12 (2017-12-19)
Bug Fixes
- warning: allow symbol as vdom key (#7271) (bacb911)
- weex: append as tree by default for recycle-list and cell-slot (#7216) (d544d05)
- weex: update recycle-list v-for transform (0ee81b2)
Features
- $compiler: compile weex native directives in preTransformNode (2d09ee3)
- $compiler: supports compiling v-bind to the weex native directive in recycle-list (8b893c1)
- $compiler: supports compiling v-else-if and v-else to the weex native directive (2a1ce0d)
- $compiler: supports compiling v-for to the weex native directive (9bd1483)
- $event: support binding parameters on event handler within weex recycle-list (acdc3c4)
- auto cache inline prop literals to avoid child re-render (996eb00)
- compile: supports compiling v-if to the weex native directive (7ad368e)
- types: extract VueConfiguration type for easy expansion (#7273) (#7274) (c0d516c)
- weex: generate "@render" function for weex recycle-list (#6987) (0c11aa8)
- weex: partially support lifecycles of virtual component (#7242) (661bfe5)
- weex: pass stateless component test case (452a65c)
- weex: recycle-list support stateful child component (70b97ac)
- weex: recycle-list support WIP (5254ee3)
- weex: split text into separate module (c104cc5)
- weex: support compiling
v-on in the weex native directive (#6892) (2cb8ea3)
- weex: update weex utils (#7115) (3b32652)
- weex: WIP adjust component transform stage (62e47c9)
- weex: WIP fix flow + handle errors in recycle-list template render (5c2ce00)
- weex: WIP implement virtual component (#7165) (b8d33ec)
- weex: WIP invoke recycle-list child component with backing instance (801f793)
- weex: WIP mark recycle list child component root (88f3889)
- wip: recycle list template inline expand (ac99957)
Reverts
- revert prop object validation (01c0750), closes #7279
- weex: remove the "receiveTasks" api and support component hook (#7053) (0bf0cbe)
2.5.11 (2017-12-14)
Bug Fixes
- avoid unnecessary lowercase coersion in component name validation (3f0c628), closes #7237
Features
- warn misspelled keys on prop validation object (#7198) (d02bb37)
2.5.10 (2017-12-12)
Bug Fixes
- core: warn duplicate keys in all cases (#7200) (023f171), closes #7199
- data() should be called with vm as first argument in mixins (bd4819e), closes #7191
- more consistent component naming warnings across the API (644274c), closes #7212
- revert shared static tree cache to avoid memory leak (5875c7c), closes #7184
- should not update in-focus input value with lazy modifier (60da366), closes #7153
- ssr: fix double escaping of ssrNode attribute values (#7224) (73a89bf), closes #7223
- ssr: properly handle errors in async component (8936b8d), closes #6778
- v-for: support array and nested destructuring in v-for (f5ce6b5)
- weex: send createFinish signal after root component mounted (#7154) (0da8bce)
2.5.9 (2017-11-27)
Bug Fixes
- block unnecessary input event on textarea placeholder in IE (0f7c443), closes #7138
- ensure functionalContext is cloned during slot clones (604e081), closes #7106
- fix async component resolving in sibling mounted hook (dd21eac), closes #7107
- fix v-for iterator parsing destructuring + parens without index (aa82625)
- keep-alive: should not destroy active instance when pruning cache (3932a45), closes #7105
- types: add missing ssr renderToString signature (14e9908)
- types: add Promise signature for bundleRenderer.renderToString (#7098) (3554eb2)
- types: bump ts version and fix typing bugs (#7135) (a71e653)
- types: improve and test bundleRenderer.renderToString Promise types (fcc1229)
- types: use object and string instead of Object and String (#7126) (d2e1d49)
2.5.8 (2017-11-21)
Bug Fixes
- fix v-for alias deconstruct regression (ebcef58), closes #7096
2.5.7 (2017-11-20)
Bug Fixes
- allow traversing reactive objects which are sealed (#7080) (4c22d1d)
- fix include/exclude logic for anonymous components (a23b913)
- improve error detector v-for identifier check (d891cd1), closes #6971
- ssr: fix bundle renderer require path on windows (#7085) (063acb7)
Features
- feat: add warning for ambiguous combined usage of slot-scope and v-for (c264335), closes #6817
2.5.6 (2017-11-18)
Bug Fixes
- fix v-model :value warning on custom component (59dea37), closes #7084
2.5.5 (2017-11-17)
Bug Fixes
- init _staticTrees to avoid runtime reference warning (f5cd29e), closes #7075
- keep-alive should not cache anonymous components (4d8226f), closes #6938
- should warn unknown components inside (6d6b373)
Features
2.5.4 (2017-11-16)
Bug Fixes
Features
- weex: support batch update styles and attributes (#7046) (7cf188e)
2.5.3 (2017-11-03)
Bug Fixes
- $set should respect properties on prototype chain (83ed926), closes #6845
- also clone component slot children during deepClone (1cf02ef), closes #6891 #6915
- clean up target variables to avoid memory leaks (#6932) (c355319), closes #6931
- core: static trees should be cached on options (#6826) (#6837) (b6c384d)
- events: properly $off array of events (#6949) (c24f3e4)
- handle encoded tabs and newlines in attributes for Chrome a[href] and IE/Edge (cfd73c2), closes #6828 #6916
- keep-alive: higher priority for exclude than include (#6905) (604230f)
- model: correctly set select v-model initial value on patch (#6910) (58a39df)
- properly mark slot rendered flag in production mode (4fe1a95), closes #6997
- slots: properly handle nested named slot passing (5a9da95), closes #6996
- special case for static muted attribute in firefox (f2e00f7), closes #6887
- ssr: properly render initial state (e1657fd), closes #6986
- ssr: properly render textarea value (79c0d7b), closes #6986
- ssr: should not optimize root if conditions (4ad9a56), closes #6907
- types: improve typing for better completion (#6886) (98ea0a3)
- typing: relax $options type for TS2.6+ (#6819) (9caed00)
- v-model: v-if / v-else not working with :type + v-model (#6955) (0c703e3), closes #6918
- weex: stop trim css units in richtext component (#6927) (8a784d8)
2.5.2 (2017-10-13)
Bug Fixes
2.5.1 (2017-10-13)
Bug Fixes
- backwards compat with checkbox code generated in < 2.5 (5665eaf), closes #6803
- fix empty array edge case in normalizeChildren (1f84dd1), closes #6790
- ssr: add semicolon before self-removal script (#6794) (5a15a8d)
- transition-group: work around rollup tree shaking (#6796) (60b1af9), closes #6792
- v-model: allow arbitrary naems for type binding (#6802) (15031b8), closes #6800
- v-on="object" listeners should fire after high-priority ones (08a7fb5), closes #6805
2.5.0 (2017-10-13)
Bug Fixes
- add slot v-bind warning (#6736) (514b90b), closes #6677
- allow an object's Symbols to be observed (#6704) (4fd2ce8)
- compiler: warn when inline-template component has no children (fix #6703) (#6715) (baabd6d)
- core: avoid observing VNodes (4459b87), closes #6610
- ensure nextTick are passed to errorHandler (#6730) (ae347a5)
- fallback to Promise in non-DOM environments (6d1f4cb)
- fix scoped CSS for nested nodes in functional components (4216588)
- handle errors in errorHandler (2b5c83a), closes #6714
- perperly handle v-if on scoped slot (68bdbf5), closes #6725
- prevent memory leak due to circular reference in vnodes (405d8e9), closes #6759
- properly render value on in IE/Edge (c64f9ae), closes #6666
- ref: preserve ref on components after removing root element (#6718) (6ad44e1), closes #6632 #6641
- resolve async component default for native dynamic import (2876ed8), closes #6751
- ssr: fix hydration mismatch with adjacent text node from slots (b080a14), closes vuejs/vue-loader#974
- ssr: handle inline template compilation error (dff85b2), closes #6766
- use correct ns inside as root node (cf1ff5b), closes #6642
- use MessageChannel for nextTick (6e41679), closes #6566 #6690
- warn slot-scope when used as a prop (8295f71)
- work around old Chrome bug (0f2cb09), closes #6601
Features
- add .exact event modifier (#5977) (9734e87), closes #5976
- add catchError option (b3cd9bc)
- add in-browser build for vue-template-compiler (a5e5b31)
- add max prop for (2cba6d4)
- core: call data method with this value (#6760) (3a5432a), closes #6739
- functional component support for compiled templates (ea0d227)
- improve template expression error message (e38d006), closes #6771
- inject: support providing default values for injections (#6322) (88423fc)
- make vue and basic server renderer compatible in pure js runtimes (c5d0fa0)
- rename catchError -> errorCaptured (6dac3db)
- rename inject alias from "name" to "from" (6893499)
- scoped CSS support for functional components (050bb33)
- ssr: add shouldPrefetch option (7bc899c), closes #5964
- ssr: auto-remove initial state script if prod (#6763) (2d32b5d), closes #6761
- ssr: renderToString return Promise (f881dd1), closes #6160
- support denoting normal elements as scoped slot (dae173d)
- support RegExp in ignoredElements (#6769) (795b908)
- types: further improve Vue type declarations for canonical usage (#6391) (db138e2)
- v-model: craete non-existent properties as reactive (e1da0d5), closes #5932
- v-model: support dynamic input type binding (f3fe012)
- v-on automatic key inference (4987eeb)
Reverts
- fix(v-model): fix input listener with modifier blocking v-model update (62405aa)
2.4.4 (2017-09-14)
Bug Fixes
- ssr: fix bundleRenderer Promise rejection regression (0c9534f)
- ssr: fix style injection regression (a2f73f2), closes #6603 #6353
2.4.3 (2017-09-13)
Bug Fixes
- $off should ignore undefined handler argument (fa6a729), closes #6591
- computed properties should not be cached during SSR (06741f3), closes vuejs/vuex#877
- deep clone slot vnodes on re-render (0529040), closes #6372
- directive: should invoke unbind & inserted on inner component root element change (538ad20), closes #6513
- do not use MutationObserver in IE11 (844a540), closes #6466
- ensure $attrs and $listeners are always objects (#6441) (59dbd4a), closes #6263
- ensure outer bindings on nested HOC are properly re-applied on inner root element change (a744497)
- handle special case for allowfullscreen on (d77b953), closes #6202
- inherit SVG ns on component root node (#6511) (89f0d29), closes #6506
- inject: exclude not enumerable keys of inject object (#6346) (3ee62fd), closes #6574
- preserve slot attribute if not resolved by Vue (684cd7d), closes #6553
- provide: provide should default to parentVal during merging (#6473) (3c21675), closes #6436
- set value as domProp for (7116af4), closes #6561
- ssr: address possible xss vector (5091e2c)
- ssr: better handle v-html hydration (0f00f8f), closes #6519
- ssr: expose context.styles when no lifecycle styles are injected (1f52a2a), closes #6353
- ssr: fix cachedEscape memory issue (02f8b80), closes #6332
- ssr: handle v-text/v-html with non-string value (09106f0), closes #6572
- ssr: should also escape static text content (172dbf9), closes #6345
- support prop type checking for primitive wrapper objects (#6450) (679cd1f), closes #6447
- transition: consider async placeholder as valid child to return (#6369) (a43d667), closes #6256
- types: add
inject option in functional component options type (#6530) (1baa0a7)
- types: allow variadic plugin use (#6363) (38d5218), closes #6357
- v-model: Allow using array value with array v-model in checkboxes (#6220) (d6e6f1d), closes #6219
- v-model: avoid unnecessary change event on select options change (d4d553c), closes #6193 #6194
- v-model: fix input listener with modifier blocking v-model update (6f312d6), closes #6552
- vdom: avoid diff de-opt when both head/tail are different (230c6ae), closes #6502
- vdom: Don't replace input for text-like type change (#6344) (f76d16e), closes #6313
Features
- weex richtext: support events and add more test cases (d627161)
- weex richtext: support to parse styles and classList (b609642)
- weex richtext: treat richtext as runtime components (3e4d926)
- weex: add basic support of richtext (f1c96e7)
- weex: remove weex_require_module api (a8146c0)
- weex: return instance in createInstance (0dc27dc)
- weex: support nested components in richtext (0ea2bb4)
- weex: wrap IFFE for appCode (f975fac)
Performance Improvements
- core: prevent iteration of arrays that should not be observable (#6467) (aa820cb), closes #6284
- deep clone slot vnodes on re-render (#6478) (5346361)
- optimize the performance of hyphenate method. (#6274) (14ee9e7)
- v-model: tweak setSelected (41d774d)
2.4.2 (2017-07-21)
Bug Fixes
- checkbox v-model="array" ignore false-value (#6180) (3d14e85), closes #6178
- compile: properly generate comments with special character (#6156) (d03fa26), closes #6150
- ensure looseEqual is not dependant on key enumeration order (a8ac129), closes #5908
- include boolean in isPrimitive check (#6127) (be3dc9c), closes #6126
- parser: only ignore the first newline in
(082fc39), closes #6146
- provide/inject: merge provide properly from mixins (3036551), closes #6175
- provide/inject: resolve inject properly from mixins (#6107) (b0f00e3), closes #6093
- transition: should trigger transition hooks for v-show in ie9 (9b4dbba), closes #5525
- v-bind: respect .prop modifier on components (#6159) (06b9b0b)
- v-model: use stricter check for option update (c70addf), closes #6112
- v-on: revert component root data.on/data.nativeOn behavior for (1713061), closes #6109
- work around IE/Edge bug when accessing document.activeElement from iframe (fc3d7cd), closes #6157
Features
- warn when assigning to computed property with no setter (eb9168c), closes #6078
Reverts
- perf: remove src directory from npm module (#6072) (ec4b1be)
2.4.1 (2017-07-13)
2.4.0 (2017-07-13)
Bug Fixes
- check enterToClass/leaveToClass existence before adding it (#5912) (34d8c79), closes #5800
- core: add merge strategy for provide option (#6025) (306997e), closes #6008
- core: should preserve reactivity-ness of injected objects (8d66691), closes #5913
- ensure cleanup in watcher.get (#5988) (f6cd44c), closes #5975
- handle arrays in v-on object syntax (086e6d9)
- improve Vue.set/Vue.delete API to support multi type of array index (#5973) (eea0920), closes #5884
- multiple merged vnode hooks not invoked properly (91deb4f), closes #6076
- parser: the first newline following pre and textarea tag should be ignored (#6022) (4d68079)
- prefetch should not have
as attribute (#5683) (ebca266)
- ref: refactor function registerRef (#6039) (254d85c), closes #5997
- ssr: fix bundleRenderer mapped async chunks caching check (#5963) (de42186)
- ssr: reference error when create $ssrContext for root component (#5981) (5581654), closes #5941
- support plugin with multi version vue (#5985) (049f317), closes #5970
- transition group should work with dynamic name (#6006) (#6019) (d8d4ca6)
- v-bind object should not override props on scopedSlots (#5995) (458030a)
- v-model: fix input change check for type="number" (0a9aab5), closes #6069
- v-model: should generate component-specific code for tags with "is" attribute (a1d1145), closes #6066
- v-model: use consistent behavior during IME composition for other text-like input types (fix #5902) (4acc8c8)
Features
- add .editorconfig (#5691) (0cc0b07)
- add
comments option to allow preserving comments in template (#5951) (e4da249), closes #5392
- Add
defer to body scripts (#5704) (f3757eb)
- core: $attrs, $listeners & inheritAttrs option (6118759), closes #5983
- keep-alive: support Array for include and exclude (#5956) (51c595a)
- resolve ES module default when resolving async components (0cd6ef3)
- ssr: inheritAttrs support in SSR (6bf9772)
- support sync modifier for v-bind="object" (#5943) (3965e50), closes #5937
- types: add declaration for inheritAttrs (1f9e924)
- types: expose $vnode (1b7ddd7)
- v-on: support v-on object syntax with no arguments (11614d6)
- weex: implement "weex.supports" api to support feature detection (#6053) (b1512d8)
Performance Improvements
2.3.3 (2017-05-09)
2.3.2 (2017-05-02)
2.3.1 (2017-05-02)
2.3.0 (2017-04-27)
2.2.6 (2017-03-27)
2.2.5 (2017-03-24)
Bug Fixes
- inject: change warn message when trying to mutate an injected value (#5243) (23a058e)
2.2.4 (2017-03-13)
2.2.3 (2017-03-13)
2.2.2 (2017-03-09)
2.2.1 (2017-02-26)
2.2.0 (2017-02-26)
Reverts
- Revert "[WIP] Support for ref callback (#4807)" (e7a2510), closes #4807
Bug Fixes
Features
- allow customization of component v-model prop/event via model option (close #4515) (9d6c8ec)
- config.performance (689c107)
- implement template option for vue-server-renderer (1c79592)
- provide/inject (close #4029) (f916bcf)
- renderError (1861ee9)
- support multi-chunk bundles in ssr bundle renderer (561447d)
2.1.10 (2017-01-17)
2.1.9 (2017-01-16)
Reverts
- Revert "also bind static special attrs as props (fix #4530)" (ab0a225), closes #4530
- Revert "Mark node with static props as static (#4662)" (4e830ba), closes #4662
2.1.8 (2016-12-28)
Reverts
- Revert "remove no longer necessary code" (fcc98d5)
- Revert "ensure leave transitions and enter transitions are triggered in the same frame (fix #4510)" (02e2d99), closes #4510
- Revert "fix enter transition flicker regression (fix #4576)" (0bb2d4e), closes #4576
2.1.7 (2016-12-24)
2.1.6 (2016-12-13)
2.1.5 (2016-12-13)
2.1.4 (2016-12-02)
2.1.3 (2016-11-24)
2.1.2 (2016-11-23)
2.1.1 (2016-11-23)
2.1.0 (2016-11-22)
2.0.8 (2016-11-20)
2.0.7 (2016-11-16)
2.0.6 (2016-11-15)
Reverts
- Revert "fix #4041, warn overriding Vue's internal methods (#4111)" (1bcc571), closes #4041 #4111
2.0.5 (2016-11-05)
2.0.4 (2016-11-04)
2.0.3 (2016-10-13)
2.0.2 (2016-10-12)
Reverts
- Revert "fix select multiple first option auto-selected in Chrome/FF (fix #3852)" (d0cfd54), closes #3852
2.0.1 (2016-09-30)
2.0.0 (2016-09-30)
Reverts
- Revert "support transition on component with v-show in root node (fix #3431)" (68be112), closes #3431
Reverts
- Revert "remove parser pre/post transforms (not used)" (bee95f8)
Reverts
- Revert "simplify array change detection" (5b30f3e)