Skip to content

1.0.0-alpha.4

Pre-release
Pre-release
Compare
Choose a tag to compare
@yyx990803 yyx990803 released this 11 Sep 19:26
· 3591 commits to main since this release

Alpha versions are pre-releases and the API may change at any time. By using the alpha releases you are responsible for any risk involved. If you have an in-production 0.12 app, it's recommended to wait until the stable 1.0 migration release before upgrading.

Changes from 1.0.0-alpha.3

Breaking

For latest binding syntax, see #1173

  • Literal directives now use the #= syntax instead of .=:

    <a v-link#="/a/b/c"></a>
  • Prop binding type indicators are now placed in the attribute name instead of the value:

    <comp
      bind-two-way@="something"
      bind-one-time*="something">
    </comp>
  • v-el and v-ref are deprecated and now use dedicate syntax:

    <!-- registers vm.$.child -->
    <comp $.child></comp>
    
    <!-- registers vm.$$.node -->
    <div $$.node></div>
    
    <!-- caveat: must use dash-case instead of camelCase, similar to props -->
    <!-- registers vm.$.someComp -->
    <comp $.some-comp></comp>
  • v-component has been deprecated in favor of the is attribute, which is now usable on any element.

  • The prefix global config has been deprecated.

New

  • v-else: must be used following an element with v-if.

    <div v-if="ok">OK</div>
    <div v-else>NOT OK</div>
  • Unsafe delimiters for HTML interpolation can now be configured separately:

    Vue.config.unsafeDelimiters = ['{!!', '!!}']

    Note in 1.0.0-alpha when you set Vue.config.delimiters, it will still implicitly update the unsafe delimiters following the current rules, but in 1.0.0-beta and above setting delimiters will have no effect on unsafeDelimiters.

Non-breaking Changes

  • Removed overly aggressive "unobservable object" warnings.
  • slot attributes on transcluded content are now preserved.

Fixed

  • Fixed issue where minified build calling non-existent deprecation warning when using legacy syntax
  • #1249 v-for error when used with 3rd party sortable plugins (@weislanes)
  • #1268 component <slot> not compiled in correct scope when inside v-for
  • #1282 <slot> fallback content not compiled in correct scope when inside v-for
  • #1295 error when triggering transitions on fragments

Internals, for Advanced Users

  • FragmentFactory is now exposed as Vue.FragmentFactory.

  • User can now extend Vue's option merging strategies by adding functions to Vue.config.optionMergeStrategies:

    Vue.config.optionMergeStrategies.myOption = function (parentValue, childValue) {
      // return merged value
    }

    The above function will be called when calling Vue.extend({ myOptions: { ... }}), or when applying a mixin that includes myOption.