何为数组的响应式通过方法把数组中的元素改变了,页面上的视图也会更新。响应式的方法div id=appdiv v-for=item in letters{{item}}/divbutton @click=btnClick按钮/button/divscript src=.....

何为数组的响应式
通过方法把数组中的元素改变了,页面上的视图也会更新。
响应式的方法
div id="app">
<div v-for="item in letters">{{item}}</div>
<button @click="btnClick">按钮</button>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
letters: ['1','2','3','4']
},
methods: {
btnClick() {
// 1.push方法:在数组最后面添加元素
// this.letters.push('aaa')
// 2.pop方法:删除数组中最后一个元素
// 3.shift方法:删除数组中第一个元素
// 4.unshift方法:在数组最前面添加元素
// 5.splice方法:删除元素、插入元素、替换元素
// 6.sort方法:排序
// 7.reverse方法:反转
}
}
})
</script>
总结:一共七个数组方法支持在vue中响应式
非响应式方法
data() {
nums: [1,2,3,4]
}
methods: {
changeNum() {
this.nums[2]= 99
}
}
此类获取数组索引进行一个操作不是响应式的。
怎么解决:
1、通过splice方法
this.nums.splice(1,1,'99')
2、也可以通过vue的set方法进行修改。
set(要修改的对象,索引值,修改后的值)
Vue.set(this.nums,1,'99')
遇到数组对象可如何是好
修改对象的属性值是响应式的
data() {
nums: [{name: "fanfusuzi",sex:"man"},{name:"zhangsan",sex: "man"}]
}
methods: {
changeName() {
this.nums[0].name ="zkf"
}
}
通过下标替换一个对象元素,不是响应式的
data() {
nums: [{name: "fanfusuzi",sex:"man"},{name:"zhangsan",sex: "man"}]
}
methods: {
changeName() {
this.nums[0] = {name: "zkf",sex:"man"}
}
}
织梦狗教程
本文标题为:vue中哪些数组方法不是响应式的


基础教程推荐
猜你喜欢
- 原生ajax瀑布流demo分享(必看篇) 2023-02-01
- 在IE中为abbr标签加样式 2022-10-16
- ajax实现数据分页查询 2023-01-31
- 解决:layUI数据表格+简单查询 2022-12-16
- JavaScript垃圾回收机制(引用计数,标记清除,性能优 2022-08-31
- 纯javascript的ajax实现php异步提交表单的简单实例 2022-12-28
- 关于ajax异步访问数据的问题 2023-02-23
- Ajax提交表单并接收json实例代码 2023-02-13
- AJax 把拿到的后台数据在页面中渲染的实例 2023-02-22
- Unicode中的常用字母小结 2022-09-21