.sync 的用法
sync在vue早期版本2.0的时候被移除了,后来又加上了,作为一个用于子组件修改父组件传入的prop而存在的语法,用法如下:
父组件:
< template>
< Snackbar :open.sync="showMessage" />
< /template>
<script>
export default {
data() {
return {
showMessage: true,
};
}
</script>
子组件通过接受父组件的showMessage
布尔值。
子组件:
< template>
<p v-if="" @click="hide">子组件</p>
< /template>
<script>
export default {
props:["open"],
methods:{
hide(){
this.$emit("update:open",false);
}
}
}
</script>
子组件通过$emit来触发自定义事件,其中update为sync修饰符约定俗成的一个方法,后面通过:符号跟一个要修改的变量名,这个变量名一般为sync修饰符所绑定的变量。
总之就是这么个写法。
父组件可以理解为使用了sync后,会多出一个这样的方法:
< template>
< Snackbar :open.sync="showMessage" @update:open="(val)=>{open = val;}" />
< /template>
<script>
export default {
data() {
return {
showMessage: true,
};
}
</script>
到这里你应该明白了$emit触发的方法名的由来吧。
以上就是sync的方法,真的非常方便。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据