vue中sync修饰符
从2.3.0起,Vue重新引入了 .sync修饰符,但是这次它只是作为一个编译时的语法糖存在。它会被扩展为一个自动更新父组件属性的 v-on 监听器。示例一:父组件:<parent :items.sync="data1"></parent>等同<parent :items="data1" @update:items="val => data1 = va...
·
从2.3.0起,Vue重新引入了 .sync修饰符,但是这次它只是作为一个编译时的语法糖存在。它会被扩展为一个自动更新父组件属性的 v-on 监听器。
示例一:
父组件:
<parent :items.sync="data1"></parent>
等同
<parent :items="data1" @update:items="val => data1 = val"></parent>
子组件:
watch: {
items(val) {
this.tableData = val
},
tableData(val) {
this.$emit('update:items', val)
}
},
computed: {
},
data() {
return {
tableData: []
}
}
示例二:
父组件:
<div class="reg-form__field">
<v-input
placeholder="请输入手机号码"
type="tel"
maxlength="11"
v-model="form.phone"
:checkPhone="true"
:required="true"
novalidate="novalidate"
pattern="[0-9]*"
:valid.sync="form.valid_phone"
/>
</div>
data() {
return {
form: {
valid_phone: false // 是否有字段不正确
}
};
}
子组件:
触发事件,传递更新的值
this.$emit('update:valid', false);
如下:
会被扩展为:
<com :foo=“bar” @update:foo=“val => bar = val”>
当子组件需要更新foo的值时,它需要显示地触发一个更新事件:
this.$emit(“update:foo”, newValue)
Vue修饰符sync的功能是:当一个子组件改变了一个prop值时,这个变化也会同步到父组件中所绑定。如果我们不用 .sync,我们也可以用props传初始值,然后事件监听。
更多推荐
已为社区贡献6条内容
所有评论(0)