Release v2.5.0 Level E · vuejs/vue · GitHub
source link: https://github.com/vuejs/vue/releases/tag/v2.5.0
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Features & Improvements
Error Handling and Reporting
- improve error handling with new
errorCaptured
hook b3cd9bc [Details] - improve template expression error message e38d006, closes #6771
- improve option type checks b7105ae
TypeScript Declaration Improvements
-
further improve Vue type declarations for canonical usage (#6391) db138e2
This change requires upgrade actions for TypeScript users using 2.4 types. Thanks to the work by @DanielRosenwasser, @HerringtonDarkholme and @ktsn. For more details, please read this blog post.
Functional Components
-
compiled templates for functional component support ea0d227
-
scoped CSS support for functional components 050bb33
These features require
vue-loader>=13.3.0
. Thanks to the work by @blake-newman. [Details]
Server Side Rendering
renderToString
now returns a Promise if no callback is passed f881dd1, closes #6160- add
shouldPrefetch
option (same signature asshouldPreload
) 7bc899c, closes #5964 - auto-remove initial state embed script if in production (#6763) 2d32b5d, closes #6761
- now ships an environment-agnostic build of the server renderer in
vue-server-renderer/basic.js
c5d0fa0 [Details]
v-model
- support dynamic
type
binding on<input>
f3fe012 - now creates non-existent properties as reactive (non-recursive) e1da0d5, closes #5932 (See reasoning behind this change)
v-on
- automatic key modifier inference 4987eeb [Details]
- add
.exact
event modifier (#5977) 9734e87, closes #5976 [Details]
Scoped Slots
Provide/Inject
<keep-alive>
- add
max
prop for<keep-alive>
for limiting max number of instances cached 2cba6d4
Other Improvements
config.ignoredElements
can now contain RegExp in addition to strings (#6769) 795b908data
function is now called with the vm instance as the first argument (#6760) 3a5432avue-template-compiler
now ships an environment-agnostic build which can be used directly in browsers invue-template-compiler/browser.js
a5e5b31
Bug Fixes
- compiler: warn when inline-template component has no children (fix #6703) (#6715) baabd6d, closes #6703 #6715
- core: avoid observing VNodes 4459b87, closes #6610
- ref: preserve ref on components after removing root element (#6718) 6ad44e1, closes #6632 #6641
- handle errors in errorHandler 2b5c83a, closes #6714
- ssr: fix hydration mismatch with adjacent text node from slots b080a14, closes vuejs/vue-loader#974
- add slot v-bind warning (#6736) 514b90b, closes #6677
- allow an object's Symbols to be observed (#6704) 4fd2ce8
- fix scoped CSS for nested nodes in functional components 4216588
- ssr: handle inline template compilation error dff85b2, closes #6766
- 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
- resolve async component default for native dynamic import 2876ed8, closes #6751
- use correct namespace inside as root node cf1ff5b, closes #6642
- use MessageChannel for nextTick 6e41679, closes #6566 #6690
- work around old Chrome bug 0f2cb09, closes #6601
Internals
We have changed the implementation of Vue.nextTick
to fix a few bugs (related to #6566, #6690). The change involves using a macro task instead of a micro task to defer DOM updates when inside a DOM event handler attached via v-on
. This means any Vue updates triggered by state changes inside v-on
handlers will be now deferred using a macro task. This may lead to changes in behavior when dealing with native DOM events.
For more details regarding micro/macro tasks, see this blog post.
For the new implementation, see source code for nextTick.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK