理解Vue里的.sync 修饰符

  • Vue里的.sync 修饰符,只是作为一个编译时的语法糖。它会被扩展为一个自动更新父组件属性的 v-on 监听器。
  • 举个例子:
<Child :money.sync="total" ></Child>

等价于

<Child :money="total" v-on:update:money="total=$event"></Child >
  • 另一个例子:
<div id="app">
    <div>{{bar}}</div>
    <my-comp :foo.sync="bar"></my-comp>
    <!-- <my-comp :foo="bar" @update:foo="val => bar = val"></my-comp> -->
</div>
<script>
    Vue.component('my-comp', {
        template: '<div @click="increment">点我+1</div>',
        data: function() {
            return {copyFoo: this.foo}
        },
        props: ['foo'],
        methods: {
            increment: function() {
                this.$emit('update:foo', ++this.copyFoo);
            }
        }
    });
    new Vue({
        el: '#app',
        data: {bar: 0}
    });
</script>

当一个子组件改变了一个 prop 的值时,这个变化也会同步到父组件中所绑定。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。