Vue.set修改的对象属性值无法在插值处更新吗?

<!--
* @Author: chj
* @FileName:vue.set.html
* @Date:   2018-06-22 13:58:18
* @Last Modified by:   chj
* @Last Modified time: 2018-06-22 16:10:47
-->
<!DOCTYPE html>
<html lang="cmn-hans">

<head>
    <meta charset="utf-8">
    <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <script src="../assets/js/vue.js" type="text/javascript"></script>
    <title>vue.set</title>
</head>
<body>
    <h1>vue.set</h1>
    <hr>
    <div id="app">
        <ol>
            <li>姓名:{{outData.Name}}</li>
            <li>年龄:{{outData.Age}}</li>
            <li>学校:{{outData.School}}</li>
            <li v-show="isShow">班号:{{outData.class}}</li>
            <li v-if="isTrue">学号:{{outData.No}}</li>
        </ol>
        <button @click="plus" id="btn1">增加一个学号信息</button>
        <button onclick="changeClass()" id="btn2">修改班号</button>
        <ol>
            <ul>
                <li v-for=" value in arr">{{value}}</li>
            </ul>
        </ol>
        <button onclick="add()">修改数组</button>
    </div>
    <script type="text/javascript">
    //外部数据
    var outData = {
        Name: '小明',
        Age: 18,
        School: '光明小学'
    }

     //修改班级号
    function changeClass() {
        Vue.set(outData, "class", "10");
        console.log("outData.class:"+outData.class);
    }

    function add() {
        //app.arr[1] = 'ddd';
        Vue.set(app.arr,1,'ddd');
        console.log(app.arr[1]);
    }
    var app = new Vue({
        el: "#app",
        data: {
            outData: outData,
            isTrue: false,
            isShow: false,
            class: "5",
            arr: ['aaa', 'bbb', 'ccc']
        },
        methods: {
            plus: function() {
                this.isTrue = true;
                this.isShow = true;
                outData["No"] = "123";
                outData["class"] = this.class;
                console.log('outData.class:'+outData.class);
            },
        }
    })
    </script>
</body>

</html>

分别点击btn1和btn2的时候,值分别是5和10.
图片描述

但是页面中数值依然是5没有变化,这个是为什么呢

阅读 3.3k
2 个回答

this.outData.class = this.class

Vue.set(app.outData, "class", "10")

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题