zoukankan      html  css  js  c++  java
  • vue .sync修饰符

    在一些情况下,我们可能会需要对一个prop(父子组件传递数据的属性)进行‘双向绑定’,vue重新引入.sync修饰符,是作为编译时的一个语法糖,它会被扩展为一个自动更新父组件属性的v-on监听器。

    普通写法:

    <text-decoment v-bind:title='title' v-on:update:title='title=$event'></text-document>

    语法糖写法:

    <text-document v-bind:title.sync="doc.title" ></text-document>

    Vue.component('text-document', {

      props: ['title'],

      template: ` <div> <button @click='setNewTitle'>更新标题</button> </div> `,

      methods:{

        setNewTitle:function(){//手动进行更新父组件中的值

        this.$emit('update:title', '这步操作修改标题实现prop双向绑定')

      }

    }

    })

    var vm = new Vue({ el:'#app', data:{ doc:{ title:'对prop进行“双向绑定”' } }, });

    .sync也可以是对象,绑定多个数据,vue会为每个数据绑定事件,但不能是表达式,表达式临界状态比较多,不好处理

    demo:

    <text-document v-bind:obj.sync="obj" ></text-document>

    Vue.component('text-document', {

      props: ['obj'],

      template: ` <div> <button @click='setNewTitle'>更新标题</button> </div> `,

      methods:{

        setNewTitle:function(){//手动进行更新父组件中的值

        this.$emit('update:obj', '这步操作修改标题实现prop双向绑定')

      }

    }

    })

  • 相关阅读:
    vue实现短信验证码登录
    使用vue3.0和element实现后台管理模板
    vue导出excel数据表格功能
    Vue2.0-token权限处理
    vue2.0实现购物车功能
    Vue图片懒加载之lazyload插件使用
    H5 canvas 绘图
    前端常见跨域请求 方法
    Html5 @media + css3 媒体查询
    Java面试之RabbitMQ
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/13720009.html
Copyright © 2011-2022 走看看