(五).sync修饰符

一. vue:.sync修饰符的本质

使用.sync修饰符可以进行数据在父组件与字组件间进行双向绑定,使用方法:

    <div id="app">
        <blog-post v-bind:title.sync="post.title" v-bind:content.sync="post.content"></blog-post>
    </div>
    <script type="text/javascript">
        Vue.component('blog-post', {
            props:['title', 'content'],
            template:`<div><span>{{title}}:{{content}}</span><button @click="$emit('update:content', '新内容')">更新内容</button></div>`
        });
        var app = new Vue({
            el:"#app",
            data:{
                post:{
                    title:'博客标题',
                    content:'博客内容'
                }
            }
        });
    </script>

浏览器显示:
在这里插入图片描述
点击按钮,博客内容发生改变。
在这里插入图片描述
其实,.sync修饰符是vue提供给我们的语法糖,其内部实现方法其实是这样的:
语法糖:

<blog-post v-bind:title.sync="post.title" v-bind:content.sync="post.content"></blog-post>

vue将其转化:

<blog-post v-bind:title="post.title" v-bind:content="post.content" @update:title="post.title=$event" @update:content="post.content=$event"></blog-post>

通过监听子组件的update事件,在父组件改变属性内容。

官方提醒:

注意带有 .sync 修饰符的 v-bind 不能和表达式一起使用 (例如 v-bind:title.sync=”doc.title + ‘!’” 是无效的)。取而代之的是,你只能提供你想要绑定的属性名,类似 v-model。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值