Vue 2.6 Released

Vue.js 2.6 brings improved slots syntax. And directives now accept dynamic JavaScript expressions as arguments.

Recently, Evan You announced the next minor release of Vue - Vue 2.6. The new release, codenamed Macross, brings new features, improvements and a couple of internal changes.
 
Slots, an important mechanism that helps flexible component composition in Vue, received some significant updates. The new syntax unifies the slot and slot-scope attributes we have in Vue 2.5 and earlier. The official blog provided a sample using named slots as below.
  1. <my-component>  
  2.   <template v-slot:header>  
  3.     <p>Header</p>  
  4.   </template>  
  5.     
  6.   <template v-slot:item="{ data }">  
  7.     <h2>{{ data.title }}</h2>  
  8.     <p>{{ data.text }}</p>  
  9.   </template>  
  10.     
  11.   <template v-slot:footer>  
  12.     <p>Footer</p>  
  13.   </template>  
  14. </my-component>  
Source:  medium.com
 
Vue 2.6 also introduces an optimization that ensures parent scope dependency mutations only affect the parent and would no longer force the child component to update if it uses only scoped slots.
 
With 2.6, Vue now captures errors on v-on handlers, and developers can return a promise from any lifecycle hooks or event handlers where they need to perform async operations. Any uncaught errors are sent to Vue’s error handlers. Using async/await makes this more convenient.
 
Vue 2.6 also introduces dynamic directive arguments. It is now possible to use a JavaScript expression in a directive argument. You can read more details in this RFC.
 
Another feature introduced is the ability to create reactive objects with Vue.observable():
  1. const reactiveState = Vue.observable({  
  2. count: 0  
  3. })  
Now, observable objects can be used directly in computed properties and render functions.
 
To learn more, you can visit the official announcement here.