vue中.sync修饰符


vue中.sync修饰符

当一个属性传递给子组件后,子组件需要修改时,可以使用.sync修饰符

父组件中使用.sync修饰符

<template>
  <div class="warp">
    父组件的msg值:{{msg}}
    <!-- <asyncSon :msg="msg" @update:msg="myFn"></asyncSon> -->
    <!-- 当一个属性传递给子组件后,子组件需要修改时,可以使用.sync修饰符 -->
    <!-- 相当于下面简写写法(如 elementUI的 dialog组件) -->
    <asyncSon :msg.sync="msg"/>
  </div>
</template>

<script>
import asyncSon from "@/view/asyncSon";
export default {
  name: "async",
  components: { asyncSon },
  data: _ => ({
    msg: "哈哈哈"
  }),
  methods: {
    myFn(val) {
      this.msg = val;
    }
  }
};
</script>

子组件使用’update:修改的属性值’来$emit父组件的值

<template>
  <div class="warp">
    <p>子组件显示的msg值:{{msg}}</p>
    <button @click="fn">修改父组件的msg值</button>
  </div>
</template>

<script>
export default {
  name: "asyncSon",
  props: {
    msg: {
      type: String,
      default: ""
    }
  },
  methods:{
    fn(){
      // 注意:必须使用'update:修改的属性值'来命名,才能使用 .sync修饰符
      this.$emit('update:msg','呵呵呵')
    }
  }
};
</script>

文章作者: Mr. Zhan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Mr. Zhan !
 上一篇
vue为什么建议永远不要把 v-if 和 v-for 同时用在同一个元素上 vue为什么建议永远不要把 v-if 和 v-for 同时用在同一个元素上
vue为什么建议永远不要把 v-if 和 v-for 同时用在同一个元素上在vue风格指南中,将”避免 v-if 和 v-for 用在一起”列为必要优先级,建议永远不要把 v-if 和 v-for 同时用在同一个元素上。官网文档如下: 一般
2021-01-17 Mr. Zhan
下一篇 
vue递归组件 vue递归组件
vue递归组件vue支持递归组件,也就是组件自己调用自己,一般用于树形组件,来写个简单tree组件实例 父组件中<template> <div class="tree-warp"> <my-tree :data="tr
2021-01-13 Mr. Zhan
  目录