Releases: vuejs/vue
v2.5.18
Includes everything in 2.5.18-beta.0
Bug Fixes
- compiler: fix codegen for v-for component inside template 1b4a8a0, closes #9142
- ssr: fix ssr template publicPath generation f077ed1, closes #9145
- fix keyName checking for space and delete in IE11 (#9150) 0ed0aad, closes #9150 #9112
- transition-group: fix activeInstance regression 8a2dbf5, closes #9151
- types: correct scopedSlot types (#9131) 448ba65, closes #9131 #8946
- types: type support for advanced async components (#8438) dfaf9e2, closes #8438
v2.5.18-beta.0
Bug Fixes
- compiler: wrap scoped slots v-if conditions in parens (#9119) ef8524a, closes #9119 #9114
- compiler: maybeComponent should return true when "is" attribute exists (#8114) aef2a5f, closes #8114 #8101
- compiler: normalize potential functional component children in v-for (#8558) d483a49, closes #8558 #8468
- compiler: should keep newline after unary tags in
<pre>
(#8965) 05001e6, closes #8965 #8950 - compiler: templates inside v-pre should be rendered to HTML (#8146) ecac831, closes #8146 #8041
- component: clean up memory leak after loading async component completes (fix #8740) (#8755) 2e472c5, closes #8740 #8755
- core: avoid mutating original children when cloning vnode 097f622, closes #7975
- core: properly handle reused vnodes 530ca1b, closes #7913
- core: skip mixins and extends if child is already merged (#8870) 80f17fa, closes #8870 #8865
- data: skip recursive call if values are identical (#8967) a7658e0, closes #8967
- error handling: handle errors on immediate watcher execution (#8581) 2686818, closes #8581 #8567
- for: use IE compatible regex in v-for regex (#8048) ecc239e, closes #8048 #7946
- lifecycle: updated should not be called after component being destroyed (#8381) a64ff19, closes #8381 #8076
- parser: allow CRLFs in string interpolations (#8408) 8f04135, closes #8408 #8103
- server: use path.posix.join to generate public path (#8177) 46b8d2c, closes #8177 #8167
- sfc: avoid deindent when pad option is specified (#7647) 9d2f9a0, closes #7647
- shared: check dates in looseEqual (#7940) db7287c, closes #7940 #7928
- ssr: adjust call stack size defer threshold e4b1b57, closes #8545
- ssr: check js assets more accurate in ssr webpack plugin (#8639) 5624278, closes #8639
- ssr: computed properties should pass vm as first argument in ssr (#9090) 33e669b, closes #9090 #8977
- ssr: fix double escaping of staticClass values (#7859) (#8037) c21b89e, closes #7859 #8037
- ssr: remove trailing hash in webpack module identifier when ae6dcd6
- ssr: render initial and used async css chunks (#7902) 575b6e7, closes #7902 #7897
- ssr: resolve server directives the same as on client (#9129) 3078352, closes #9129 #8961
- transition: check existence of
el.parentNode
(#8422) 0b16927, closes #8422 #8199 - transition: handle local-formatted floats in toMs function. (#8495) 59d4351, closes #8495 #4894
- transition: transition-group should only listen for first-level children's end events (#8374) 504d5da, closes #8374
- types: accept
number
type as key on Vue.set/delete (#8707) (#8709) 0ba79e2, closes #8707 #8709 - types: fix
renderError
arguments type (#8636) ac217d2, closes #8636 #8635 - types: fix vm.$once argument type (#8995) 97086f3, closes #8995 #8983
- types: make VNodeDirective properties optional, fix #8013 (#8003) 99a51b4, closes #8013 #8003
- types: relax the return type of props default option (#8537) a9eb198, closes #8537
- types: support chain call for Vue.use and Vue.mixin (#8595) c711ec1, closes #8595
- types: support typing $el as SVGElement (#8809) 3cd4af4, closes #8809
- v-bind object should be overridable with kebab-cased props (#8845) 7585241, closes #8845
- v-model: avoid duplicate model transforms 7b7164c, closes #8436
- v-on: correctly remove once listener (#8036) 19c33a7, closes #8036 #8032
- actually disable dep collection when invoking lifecycle hooks (#9095) 0d62bb8, closes #9095 #9046
- fix potential xss vulnerability in ssr when using v-bind 3d36a44
- v-pre: skip compiling custom component tags in v-pre blocks (fix #8286) (#8376) a71853b, closes #8286 #8376
- fix server env detection in wechat mini program (#9075) 05e8bcf, closes #9075
- handle undefined style properties in jsdom (fix #7444) (#8281) 5cfdf1a, closes #7444 #8281
- make sure global state is restored in the case of an exception in macrotask callback (#9093) b111de4, closes #9093
- replace hardcoded .parentNode with abstract ops, fix #8713 (#8714) 1e1ce0c, closes #8713 #8714
- support modifier combination of click.right + .once (#8492) eb60452, closes #8492
v2.5.17
v2.5.17-beta.0
This release contains a number of "risky" changes (specifically #7822 , #7823, #7824). Although they do not alter the public API, they do alter internal behavior and may cause breakage if your code relies on some of these specific behaviors. This is therefore released under the beta
dist tag so that users can test this release in development environments to ensure compatibility.
Bug Fixes
- codegen: support IE11 and Edge use of "Esc" key (#7887) 1bd6196, closes #7887 #7880
- observer: invoke getters on initial observation if setter defined (#7828) 7a145d8, closes #7828
- add missing
asyncMeta
during VNode cloning (#7861) 8227fb3, closes #7861 - beforeUpdate should be called before render and allow state mutation (#7822) b7445a2, closes #7822 #7481
- correct the
has
implementation in the_renderProxy
(#7878) 7b38739, closes #7878 - ensure init/prepatch hooks are still repsected de42278, closes vue-router#1338
- invoke component node create hooks before insertion (#7823) f43ce3a, closes #7823 #7531
Performance Improvements
v2.5.16
Bug Fixes
- allow multiline expression in v-for 71b4b25, closes #7792
- 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
- core: Make set/delete warning condition for undefined, null and (#7818) 9084747, closes #7818 #7452
- 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 #7819 #7811
- 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 #7814 #7813
- fix wrongly matched named slots in functional components 62a922e, closes #7817
- named slots for nested functional components 6dd73e9, closes #7710
v2.5.15
v2.5.14
Bug Fixes
- codegen: support filters with () in older browsers (#7545) dc97a39, closes #7545 #7544
- core: disable dependency collection in lifecycle hooks and data getter (#7596) 318f29f, closes #7596 #7573
- core: handle edge cases for functional component returning arrays 8335217, closes #7282
- inject: use hasOwn instead of 'in' for provideKey check (#7460) 733c1be, closes #7460 #7284
- model: fix array index binding for v-model checkbox (#7671) 550c3c0, closes #7671 #7670
- observer: do not invoke getters on initial observation (#7302) 7392dfc, closes #7302 #7280
- ref: allow ref key to be zero (#7676) e396eb3, closes #7676 #7669
- show: prevent transitions from starting on change truthy values (#7524) 013d980, closes #7524 #7523
- types: contravariant generic default in ComponentOption (#7369) 6ee6849, closes #7369
- fix ssr env detection in weex (#7375) 3eb37ac, closes #7375
- transition: should not add transition class when cancelled (#7391) 5191f13, closes #7391 #7390
- types: add missing
listeners
type on RenderContext (#7584) db1b18c, closes #7584 - types: fix wrong errorCaptured type (#7712) 6b8516b, closes #7712
- types: make render option in functional components to optional (#7663) b2092db, closes #7663
- types: make VNodeChildrenArrayContents type more accurate (#7287) 49aae6b, closes #7287
- types: prefer normal component over functional one (#7687) 144bf5a, closes #7687
- v-model: handle trailing whitespaces in expression (#7737) db58493, closes #7737
- v-on: return handler value when using modifiers (#7704) 6bc75ca, closes #7704
- vdom: svg inside foreignObject should be rendered with correct namespace (fix #7330) (#7350) 0529961, closes #7330 #7350
- weex: default value for editor, fix #7165 (#7286) e055df8, closes #7165 #7286 #7165
- address potential regex backtrack cd33407
- allow codebase to be inlined directly in HTML (#7314) dccd182, closes #7314 #7298
- always install composition event listeners f7ca21e, closes #7367
- clean up custom events when patched component no longer have events d8b0838, closes #7294
- do not special case attributes for custom elements 50b711a, closes #6864 #6885
- fix config.productionTip ced00b1, closes #7565
- install ssr helpers for functional context during SSR 9b22d86, closes #7443 nuxt/nuxt#2565
- respect type order when boolean casting multi-typed props 81e1e47, closes #7485
- skip v-model & value binding collision check with dynamic type binding (#7406) 1c0b4af, closes #7406 #7404
- support KeyboardEvent.key in built-in keyboard event modifiers (#7121) 1c8e2e8, closes #7121 #6900
- support v-model dynamic type binding for v-bind="object" 41838c8, closes #7296
v2.5.13
v2.5.12
Bug Fixes
Improvements
-
core: prop bindings with inline Object/Array literal values no longer cause the child component to always re-render:
<foo :bar="[1, 2, 3]"/>
The compiler now automatically wraps the literal value as an inline computed property to avoid creating new values on each render (unless data it depends on has changed).
-
types: extract VueConfiguration type for easy expansion (#7274) c0d516c, closes #7273