When developing a single-file component, we were stuck with a single v-model directive and a .sync option for a second update change. This meant us using a lot of custom event emitters and huge object payloads to handle data inside the component.
In this breaking change, a collateral break change was introduced that resulted in the model property (https://vuejs.org/v2/api/#model) being removed from the Vue API. This property is used in custom components that used to do the same thing that the new v-model directive now does.
The new way to use the v-model directive will change how the sugar syntax works. In Vue 2, to use a v-model directive, we had to create a component expecting to receive the props as "value", and when there was a change, we needed to emit an 'input' event, like the following code:
<template>
<input
:value="value"
@input="$emit('input', $event)"
...