赞
踩
1、什么是 Vue 响应式:
答:简单说:当更新或者增加data(数据)时,页面(UI)会有响应,重新渲染对应的数据;
2、Vue 响应式的特点:
其一、对象新增加的属性,不具有响应式;
其二、修改对象本存在属性,具有响应式;
其三、数组的普通(非对象)元素通过索引修改,不具有响应式;
其四、数组的对象元素通过索引修改,具有响应式;
其五、数组通过调用 ‘push/splice/shift…’ 方法具有响应式;
其六、数组通过调用 ‘push/splice/shift…’ 方法新增加的对象元素也具有响应式;
1、代码展示:
其一、展示 Vue 响应式的代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div id="app"> {{a}} {{d[0]}} {{d[d.length-1]}} {{b[0].num}} {{b[0].num2}} {{c}} {{c.x}} {{b}} </div> <script src="./node_modules/vue/dist/vue.js"></script> <script> let vm = new Vue({ el: '#app', data() { return { //返回的数据对象是具有响应式的; a: 10, b: [{ num: 10 }, 2, 3], c: { x: 123 }, d: [1,2,3] } } }); </script> </body> </html>
其二、页面的展示结果为: (一一对应)
{{a}} {{d[0]}} {{d[d.length-1]}} {{b[0].num}} {{b[0].num2}} {{c}} {{c.x}} {{b}}
// 注意:由于 b 数组的 b[0] 对象中并没有 num2 这个属性值,因此 {{b[0].num2}} 并没有值输出;
2、 Vue 响应式的操作:
其一、对象新增加的属性,不具有响应式;
A、在控制台输入的代码为:vm.c.y = 321;
B、页面展示结果为:
// 此时 {{c}} 的输出结果仍为:{"x":123}
,并没有将 c.y 的值显示出来,就说明:对象新增加的属性,不具有响应式;
其二、修改对象本存在属性,具有响应式;
A、在控制台输入的代码为:vm.c.x = 999;
B、页面展示结果为:
// 此时 {{c}} 的输出结果为:{"x":999},且 {{c.x}} 的输出结果为:999
,就说明:修改对象本存在属性,具有响应式;
其三、数组的普通(非对象)元素通过索引修改,不具有响应式;
A、在控制台输入的代码为:vm.b[1] = 5;
B、页面展示结果为:
// 此时 {{b}} 的输出结果为:[{"num":10}, 2, 3]
,就说明:数组的普通(非对象)元素通过索引修改,不具有响应式;
其四、数组的对象元素通过索引修改,具有响应式;
A、在控制台输入的代码为:vm.b[0].num]= 999;
B、页面展示结果为:
// 此时 {{b}} 的输出结果为:[{"num":999}, 2, 3]
,就说明:数组的对象元素通过索引修改,具有响应式;
其五、数组通过调用 ‘push/splice/shift…’ 方法具有响应式;
A、在控制台输入的代码为:vm.b.push(4);
B、页面展示结果为:
// 此时 {{b}} 的输出结果为:[{"num":999}, 2, 3, 4]
,就说明:数组通过调用 ‘push/splice/shift…’ 方法具有响应式;
其六、数组通过调用 ‘push/splice/shift…’ 方法新增加的对象元素也具有响应式;
A、在控制台输入的代码为:vm.b.push({m:10});
和 vm.b[3].m = 999;
B、页面展示结果为:
// 此时 {{b}} 的输出结果为:[{"num":10}, 2, 3, {"m": 999}]
,就说明:数组通过调用 ‘push/splice/shift…’ 方法新增加的对象元素也具有响应式;
其一、Vue 响应式的特点:
A、对象新增加的属性,不具有响应式;
B、修改对象本存在属性,具有响应式;
C、数组的普通(非对象)元素通过索引修改,不具有响应式;
D、数组的对象元素通过索引修改,具有响应式;
E、数组通过调用 ‘push/splice/shift…’ 方法具有响应式;
F、数组通过调用 ‘push/splice/shift…’ 方法新增加的对象元素也具有响应式;
其二、哪里有不对或不合适的地方,还请大佬们多多指点和交流!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。