<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>监控数据的变化</title>
    </head>
    <script type="text/javascript" src="js/vue.js" ></script>
    <body>
        <div id="div1">
            <button @click="doUpdate">修改属性</button>
            <button @click="doAdd">添加属性</button>
            <button @click="doDelete">删除属性</button>
            <hr>
            <h2>{{user.name}}</h2>
            <h2>{{user.age}}</h2>
        </div>
    </body>
    <script>
        let vm = new Vue({
            el: "#div1",
            data:{
                user:{
                    id:1,
                    name:'John',
                }
            },
            methods:{
                doUpdate(){
                    this.user.name = 'Tom';
                },
                doAdd(){
                    //this.user.age = 18;  //通过普通方式为对象添加属性时vue无法实时监视到
                    //this.$set(this.user,'age',23);  //可以实时监控更新信息
                    if (this.user.age) {
                        this.user.age++;
                    }else{
                        Vue.set(this.user,'age',23);  //第二种方式
                    }
                },
                doDelete(){
                    if (this.user.age) {
                        Vue.delete(this.user,'age');
                    }
                }
            }
        });
        
        
    </script>
</html>