面试题(vue数组中对象变化,页面不渲染问题)

1.vue数组中对象变化,页面不渲染问题

由于js限制,vue不能检测一下情况变化:
1.利用索引,修改数组第一项时;
vm.items[indexOfItem] = newValue
2.当修改数组长度时;
vm.items.length = newLength

解决办法:

利用Vue.set();
Vue.set(example1.items,indexOfItem,newValue);
或example1.items.splice(indexOfItem,1,newValue);
解决第二种:example1.items.splice(newLength);

关于对象修改,页面没有渲染更新,Vue不能更新根级别的响应式元素

var vm = new Vue({

data() {
    return {
        userProfile: {
            name: 'Anika'
        }
    };
}

})
userProfile添加‘age’属性:
Vue.set(vm.userProfile,'age',17);
或this.$set(vm.userProfile,'age',17);
若需要为已有对象赋予多个新属性:

Object.assign({},this.userProfile,{
'age':'16',
'like','li'
}
)

参考
https://www.cnblogs.com/think...
https://blog.csdn.net/qq_2546...

你可能感兴趣的:(前端vue.js)