木灵鱼儿

木灵鱼儿

阅读:888

最后更新:2020/05/21/ 14:19:12

.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的方法,真的非常方便。

版权申明

本文系作者 @木灵鱼儿 原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

关于作者

站点职位 博主
获得点赞 0
文章被阅读 888

相关文章

目录树