在开发的过程中经常会遇到这样的需求:一个父组件传递给子组件一个prop来控制子组件状态的变化,同时子组件自身也监听了一些事件,事件触发时会改变自身的状态。但是因为自身状态的存储是放在父组件传来的prop上的,如果直接修改prop,违反了单向数据流的原则,会导致数据流混乱,代码难以维护,数据变更难以追踪。
为了不修改prop,需要emit一个事件,将变化后的状态数据发给父组件,父组件通过监听子组件emit的事件来获取更新后的值,并将其应用在prop上。 可以看出这个过程显得比较繁琐,但是代码逻辑基本上是固定的,所以vue提供了.sync这个语法糖来简化这个需求的实现