最近学习Vue2, 遇到2个问题:1.data的属性是对象, 通过赋值直接设置对象的属性值, 原本不应该视图更新的, 但是如果设置data另一个属性的值, 导致视图更新, 同时会导致这个对象的视图更新.<div id="app"> <div> {{message}} </div> <div> {{object.name}} </div></div>var vm = new Vue({ el: "#app", data(){ return { message: "message初始值", object: {} } }});// vm.$set(vm.object, "name", "通过set设置object的属性的值");// 通过赋值, 直接设置属性值, 页面视图没有更新vm.object.name = "设置object的属性的值";// 取消注释这句话, 会触发上面这句话的视图更新!//vm.message = "设置message的值";// vm.$forceUpdate();2.setTimeout里面, 即使通过Vue.set没有视图更新<div id="app"> <div> {{message}} </div> <div> {{object.name}} </div></div>var vm = new Vue({ el: "#app", data(){ return { message: "message初始值", object: {} } }});// 如果取消注释这个, 那setTimeout里面的视图会更新// vm.$set(vm.object, "name", "设置object的属性的值");vm.object.name = "不通过set, 设置object的属性的值";setTimeout(function(){ // 页面视图没有更新 vm.$set(vm.object, "name", "通过set设置object的属性的值"); // vm.$forceUpdate();}, 500);不知描述的是否清晰, 请帮忙看看(没百度到), 感激!
添加回答
举报
0/150
提交
取消