@yyx990803 yyx990803 released this Oct 13, 2017 · 334 commits to dev since this release

Assets 2

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

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 as shouldPreload) 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

v-on

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) 795b908
  • data function is now called with the vm instance as the first argument (#6760) 3a5432a
  • vue-template-compiler now ships an environment-agnostic build which can be used directly in browsers in vue-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.