我们可以看到,即使数据被修改了,但页面还是无法动态响应。Vue给我们提供了动态处理响应式数据的API,我们可以用来修改数组元素或者对象属性。如下:
Vue.set(vm.items, indexOfItem, newValue) -----Vue形式vm.$set(vm.items, indexOfItem, newValue)------Vue实例形式① 参数一表示要处理的数组名称或对象名称 ② 参数二表示要处理的数组的索或者对象属性 ③ 参数三表示更改后的数组或对象的值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div id="app"> <input type="text" v-model="msg"> <ul> <li v-for="item in list">{{item}}</li> </ul> <div>{{user.name}}</div> <div>{{user.age}}</div> </div> <script type="text/javascript" src="js/vue.js"></script> <script type="text/javascript"> /* Vue实例的生命周期 */ var vm = new Vue({ el: '#app', data: { user:{ name:"macay", age:"20" }, list:["西游记","三国演义","水浒传"] } }); Vue.set(vm.user,"age",25); vm.$set(vm.list,0,"朝花夕拾") </script> </body> </html>可以看到数据已经动态响应了。