- #3433, #4445, #4511 avoid parsing error when being bundled via Browserify (@arielpachara via #4646)
- #4590 handle component root patch edge case
- #4599 ensure updated hook is called after child components are updated
- #4620 fix checkboxes that are in-focus not updating on data change (@defcc via #4639)
- #4633 fix keep-alive with dynamic include/exclude patterns
- #4650 fix single -> array & array -> single event handler patching
- #4655 fix v-on .once on multiple elements
- #4658 fix input with static
valuebindings being reset on component update
- #4693 support calling
- #4702 fix leave transition ending early when multiple custom transition components are used together
The transition behavior change introduced in 2.1.7 has been reverted. All transitions that worked in 2.1.6 and earlier should work exactly the same in 2.1.8.
In order to properly solve #4510, a new type of transition class (
-to) is introduced. Now for each transition phase (
appear) there are three classes. For example for a leaving transition:
v-leave: the starting state for the transition;
v-leave-to: the ending state for the transition;
v-leave-active: applied across the entire transition duration.
v-leave-activebehave exactly like before. The only difference between
v-leave-activeis that it is applied one frame after the transition starts.
The reason for this is that enter transitions are triggered by the removal of
v-enter, which is also one frame after the transition starts. So using
v-leave-activeensures that enter and leave transitions triggered at the same time also start in the exact same frame. The class name also more correctly express what it represents.
All previous transition code will continue to work, but from now on it is recommended to use
v-leave-toto indicate leaving transition end state.
- #4545 fix dynamic transition type for higher-order transition components
- #4560 fix hydration error when interpolated text contains CRLF
- #4564, #4584, #4589 fix regression patch error for elements containing both components and
<slot>(@defcc via #4572)
- #4576 fix enter transition flicker regression
- #4586 fix checkbox
v-modelchecked state for non-boolean values
🎄 Happy Holidays! 🎄
Potential Required Actions
In order to fix certain bugs, we had to introduce a few minor behavior changes:
If you are the author of a plugin/component that ships a pre-compiled dist file:
It is recommended to re-compile the dist file using the latest versions of
vue-template-es2015-compiler. The new generated code is backwards-compatible, but code generated by older versions of the compilers may not work properly with the latest runtime.
Code generation changes that affect compatibility are very rare and we will avoid introducing similar changes in future patch releases.
If you use
<transition-group>'s move animation feature:
When fixing #4510 (ensure leave transitions and enter transitions triggered by the same state change are started in the same frame), we had to move the application of the
v-leave-activeclasses to one frame after the application of
v-leave. This should not affect existing usage of
<transition>, however if you are using
<transition-group>for moving animations, there is a minor adjustment required: you need to now add
position: absoluteto both
v-leave-activeis sufficient). See updated moving animation example.
- Improved stateful components instantiation performance by ~30%.
- From version 2.1.7 and up, you can directly use the CDN link https://unpkg.com/vue for the standalone build.
- #4472 fix functional component multiple root nodes regression
- #4478 fix SVG foreignObject namespace regression
- #4484 unbind v-show if no longer present during patch
- #4494 ensure
<option>is always updated (@defcc via #4505)
- #4497 fix
v-forbehavior with string value (@posva via #4499)
- #4510 ensure leave transitions and enter transitions triggered by the same state change are started in the same frame
- #4514 fix
v-modelselected value update between
""(@defcc via #4528)
- #4518 change
Vue.config.ignoredElementsdefault value to be consistent with docs (@semenyukdmitry via #4518)
- #4521 avoid checked state being overwritten before change event trigger
- #4529 support
v-bindobject syntax on scoped slots
- #4530 fix special attributes (e.g.
value) patching error when switching between dynamic and static bindings
- #4533 fix hydration error caused by empty text nodes between
- #4535 fix node removal error when patching elements with
v-text(@defcc via #4548)
- #4538 avoid casting empty string to Boolean when a prop expects both String and Boolean types (@fliptheweb via #4539)
- Small across-the-board performance improvement for render functions compiled from templates. They now skip the normalization of nested children arrays based on information inferred from the templates at compile time.
valueshould be bound as a DOM property for
- #4391 fix IE9 radio input value
- #4392 avoid v-model with .trim/.number updating value when in focus (@defcc)
- #4393 fix template-nested
- #4415 fix filter parsing for divisions
- #4418 fix transition v-show display toggle timing for enter hooks
- #4432 fix
v-bind.propparse logic (@defcc via #4435)
- #4434 ensure local assets is prioritized regardless of naming convention
- Added typings for 2.1 features (@ktsn via #4305)
.once(@KingMario via #4267)
config.keyCodesnow support Array values for mapping an alias to multiple keyCodes. (@defcc via #4328)
- Modifier key modifiers (
.meta) now also work for KeyboardEvents.
- #4304 fix in-browser detection in jsdom + Node 7
- #4306 fix static style bindings that contains
- #4315 fix incorrect context for slot content created in functional components
- #4339 fix keep-alive child component root transition
- fix stateful transition wrapper component as child component root
- fix non-existent property reference detection after
vue-loadercode generation change
- #4284 fix instance root node patching edge case (@HerringtonDarkholme via #4299)
- #4288 fix
v-oncenodes losing child reference after patch
vue-template-compiler: fix single-file components nested