您的位置:首页 > Web前端 > Vue.js

vue数组和对象响应式数据处理

2019-08-15 11:22 621 查看
原文链接:https://blog.csdn.net/abcdef12030/article/details/96107323

做项目时踩到的坑,在前端通过axios.get向后台请求数据,通过params传递一个对象,当通过this.getUserparams.pagesize=val直接修改传递对象的值时,发现后台请求的数据没有发生改变,此时修改的数据并不是响应式的数据。
要修改对象或者数组中的值并想要进行响应式处理的时候需要通过set方法进行修改:

Vue.set(this.getUserparams, 'pagesize', val)
//或者
this.$set(this.getUserparams, 'pagesize', val)(this指向的是Vue对象)

下面就写一个小demo

<div id="app">
<ul>
<li v-for='item in list'>{{item}}</li>
</ul>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
list: ['apple', 'orange', 'banana'],
}
});
</script>

当在浏览器控制台输入下边语句的时候,页面上显示的数据并不会响应式改变

vm.list[0] = 'lemon';

只要当使用set方法时,页面数据才会动态修改

vm.$set(vm.list, 1, 'lemon');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: