何为数组的响应式通过方法把数组中的元素改变了,页面上的视图也会更新。响应式的方法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中哪些数组方法不是响应式的
基础教程推荐
猜你喜欢
- JS滚动到顶部踩坑解决记录 2023-07-10
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- Ajax+smarty技术实现无刷新分页 2022-12-15
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21
- Ajax发送和接收请求 2022-12-15
- HTML clearfix清除浮动讲解 2022-11-20