v-model双向绑定

2018-07-07  本文已影响0人  嗯哼_3395

v-model双向绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="box">
        <veb v-model="num"></veb>
    </div>
</body>
    <script>
       // Vue.component("veb",{
    //        props:["value"],//接收的时候,必须是value
    //        template:"<button @click='add'>{{value}}</button>",
    //        methods:{
    //              add:function(){
    //                  var num=this.value;
    //                  num++;
    //                  this.$emit("input",num)//监听的事件必须是input事件
    //              }
    //        }
       // })
       //当需要绑定多个value值的时候,需要自定义一个model属性
       Vue.component("veb",{
              model:{
                   prop:"num",
                   event:"b"
              },
              props:["num"],
              template:"<button @click='add'>{{num}}</button>",
              methods:{
                    add:function(){
                        var a=this.num;
                        a++;
                        this.$emit("b",a)//监听的事件必须是input事件
                    }
              }
       })
       var box=new Vue({
          el:"#box",
          data:{
              num:2
          }
       })
       //v-model和.sync的区别
       //.sync可以双向绑定多个值,更直观,更强大
       //v-model只能接收value的值,并且监听input事件
    </script>
</html>
上一篇下一篇

猜你喜欢

热点阅读