为了账号安全,请及时绑定邮箱和手机立即绑定

Vue2的响应式问题

Vue2的响应式问题

互换的青春 2019-03-13 13:15:04
最近学习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);不知描述的是否清晰, 请帮忙看看(没百度到), 感激!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 429 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信