0.11.1
Component compilation scope change
When a component is used in a parent template, e.g.:
<div v-component="child" v-show="active" v-on="click:onClick">
<p>{{message}}</p>
</div>The directives (v-show and v-on) and the transclusion content ({{message}}) will now be compiled in the parent's scope. That means the value of active, onClick and message will be resolved against the parent. Any directives/interpolations inside the child's template will be compiled in the child's scope. This ensures a cleaner separation between parent and child components.
Advanced transition control parameters for v-component
-
wait-forAn event name to wait for on the incoming child component before switching it with the current component.
This allows you to wait for asynchronous data to be loaded before triggering the transition to avoid unwanted flash of emptiness in between.Example:
<div v-component="{{view}}" wait-for="data-loaded"></div>
// component definition { compiled: function () { var self = this $.ajax({ // ... success: function (data) { self.$data = data self.emit('data-loaded') } }) } }
-
transition-modeBy default, the transitions for incoming and outgoing components happen simultaneously.
This param allows you to configure two other modes:in-out: New component transitions in first, current component transitions out after incoming transition has finished.out-in: Current component transitions out first, new componnent transitions in after outgoing transition has finished.
Example
<div v-component="{{view}}" v-transition="fade" transition-mode="out-in"> </div>
Exposed additional internals:
Only intended for advanced users who wish to dynamically extend Vue and are familiar with the source code.
- Key code aliases for the
keyfilter: Now accessible asVue.filter('key').keyCodes - Input type handlers for
v-model: Now accessible asVue.directive('model').handlers - Parsers and Compiler: Now accessible as
Vue.parsers&Vue.compiler.
Other new features
-
v-stylenow accept an object of CSS property/value pairs. (suggested in #578, and thanks to @skovhus for the pull request!) -
New custom directive option:
deep.When this option is set to true and the directive is bound to an object, it will collect all nested properties of that object as dependencies, so that any nested property change will also trigger the directive's
upadtefunction. -
When using
dataoption in multiple extension/mixins, the returned values will now be recursively merged. (#594)Example:
var A = Vue.extend({ data: function () { return { a: 1 } } }) var B = A.extend({ data: function () { return { b: 2 } } }) var b = new B() b.$log() // -> { a: 1, b: 2 }
-
The
jsonfilter is now bi-directional and can be used on a<textarea>withv-modelfor two-way binding. -
trackbyforv-repeatis nowtrack-by, for more consistent naming. Thetrackbyusage is still preserved for backwards compatibility.