.sync 修饰符

95 阅读1分钟

在Vue中,不推荐子组件直接去修改外部数据,因为会出现两个修改的源头,数据处理会变得混乱。因此利用Vue的实例都有eventBus功能,用$emit去触发事件、传入参数,用$event获取参数,实现子组件在修改数据都需要通知父组件来修改的需求。

//  子组件Demo,子组件的外部数据bar,由父组件的传入foo
//  子组件
<div @click="$emit('update:bar,bar-1')">{{bar}}<div/>
//  父组件
<Demo :bar="foo" v-on:update:bar="foo=$event"/>

父实例上的代码还是挺多的,因此Vue进一步提供了语法糖---修饰符sync

//  父组件
<Demo :bar.sync="foo"/>
  • 注意,update:bar即事件名需遵守这种格式。