美文网首页
vue .sync 修饰符

vue .sync 修饰符

作者: Fanny | 来源:发表于2020-01-14 11:21 被阅读0次

.sync 修饰符作用: 让子组件可以更加优雅的修改父组件的data
单向数据流
所有的prop都是其父子prop之间形成一个单向下行绑定,:父级prop的更新会向下流到子组件中,但是反过来是不可以的(不可以在子组件中修改父组件传递的prop),这样会防止从子组件以外的改变父组件的状态,导致数据流向难以理解
prop使用
正常情况下,1.我们可以直接在template中使用prop的值 2. prop传递一个data的初始值,使其作为一个本地数据使用 3. 在计算属性中这个prop 作为一个初始值进行转换

1 . 通过.sync 使子组件修改父组件的data更加优雅

//父组件传递一个布尔值控制子组件的显示与隐藏,但是在子组件内部不可以直接修改这个prop,经常是通过事件的方式来修改, 使用 . sync 就是让这种方式变得简单
//paraent
 <div id="app">
      <h1>父组件---{{ showModal }}</h1>
      <myComponent :show.sync="showModal"></myComponent>
      <!-- 等同于下面这句 -->
      <!-- <myComponent :show="showModal" @update:show="val => showModal = val" ></myComponent> -->
 </div>
  data() {
    return {
      showModal: true
    };
  },

//child
 <div class="son">
    <h2 v-if="show">子组件----修改在子组件的msg</h2>
    <button @click="close">子组件--修改在子组件的msg</button>
 </div>
export default {
  props: ["show"],
  methods: {
    close() {
      this.$emit("update:show", !this.show);
    }
  }
};
20200114_134025.gif

2 . 在子组件通过触发事件事件修改父组件的data

//使用自定义事件,利用回调函数,使child中的值传递到paraent中从而修改父组件的值,改变状态
//paraent
<myComponent  :show="showModal" @transmsg="changemsg"></myComponent>
 data() {
    return {
      showModal: true
    };
  },
  methods: {
    changemsg(e){
      this.showModal = e
    },  
  }

//child
<div class="son">
    <h2 v-if="show">子组件----修改在子组件的msg</h2>
    <button @click="close">子组件--修改在子组件的msg</button>
</div>

 methods: {
    close() {
     this.$emit("transmsg",false)
    }
  }
自定义事件.gif

相关文章

  • 深入理解vue 修饰符sync【 vue sync修饰符示例】

    在说vue 修饰符sync前,我们先看下官方文档:vue .sync 修饰符,里面说vue .sync 修饰符以前...

  • 2018-10-11

    vue 修饰符sync【 vue sync修饰符示例】 先看下一个参考的文章:深入理解vue 修饰符sync【 v...

  • vue3 的 v-model

    子组件 类似于vue2的.sync 修饰符

  • .sync修饰符及MVVM

    .sync修饰符 父组件 子组件 vue的数据响应式

  • 关于vue的一些实践

    参考文章:vue中需要注意的问题总结(上) 1.对于sync的使用 参考vue的修饰符sync 在有些情况下,我们...

  • Vue3的组件上v-model的用法

    Vue3的组件上v-model的用法用法示例: 相当于 vue 2 注:Vue3 v-model没有.sync修饰符

  • vue .sync修饰符

    今天又翻了一下vue文档,.sync修饰符一直没有领会,今天总算弄清楚了,它允许在子组件中直接改变父组件数据,而我...

  • vue sync 修饰符

    原文地址:https://juejin.im/post/5b6afe9e5188251b1f228666 sync...

  • vue sync 修饰符

    sync 修饰符 子组件 父组件 点击促发后content数据会变成子组件传的值

  • Vue sync修饰符

      在一些情况下,可能会需要对一个 prop 进行双向绑定。事实上,这正是Vue1.x中的 .sync修饰符所提供...

网友评论

      本文标题:vue .sync 修饰符

      本文链接:https://www.haomeiwen.com/subject/clioactx.html