1.变异方法(修改原有数据,会影响原有数组数据)
都会被Vue处理成响应式的方式,只要调用这些方法,都会影响到页面中模板内容的变化
this.list.push(this.fname)
push()
数组末尾添加一个或多个元素pop()
删除数组的最后一个元素shit()
删除数组的第一个元素unshit()
向数组开头添加一个或多个元素splice()
删除数组中指定元素sort()
对数组中的元素进行排序reverse()
反转数组,颠倒顺序
2.替换数组(生成新的数组,不会对原数组产生影响)
调用完之后,他的返回值需要重新赋值给原始的数组
this.list = this.list.slice(1, 2)
concat()
连接两个或多个数组filter()
通过检查指定数组中符合条件的所有元素slice()
提取数组中指定元素
<div id="app">
<div>
<span>
<input type="text" v-model="fname">
<button @click = "add">添加</button>
<button @click = "del">删除</button>
<button @click = "change">替换</button>
</span>
</div>
<ul>
<li :key="index" v-for="(item, index) in list">{{item}}</li>
</ul>
<div>{{info.name}}</div>
<div>{{info.age}}</div>
</div>
<script>
var vm = new Vue({
el:"#app",
data:{
fname:"",
list:["apple", "orange", "banana"]
},
methods: {
//数组的响应式方法
add: function(){
this.list.push(this.fname)
},
del: function(){
this.list.pop(this.fname)
},
change: function(){
this.list = this.list.slice(1, 2)
}
}
});
</script>
修改响应式数据
一:数组:
Vue.set(vm.items, indexOfItem, newValue)
Vue.$set(vm.items, indexOfItem, newValue)
- 参数一表示要处理的数组名称
- 参数二表示要处理的数组的索引
- 参数三表示要处理的数组的值
二:对象:
(语法相同)
- 参数一表示要处理的对象名称
- 参数二表示要处理的添加的新的属性名
- 参数三表示要处理的属性的值
<div id="app">
<ul>
<li :key="index" v-for="(item, index) in list">{{item}}</li>
</ul>
<div>{{info.name}}</div>
<div>{{info.age}}</div>
<div>{{info.gender}}</div>
</div>
<script>
var vm = new Vue({
el:"#app",
data:{
info:{
name: 'lisa',
age:"12"
}
}
});
//数组
// vm.list[1] = "lhaha";//不是响应式
// Vue.set(vm.list, 2, "lalal");
vm.$set(vm.list, 1, "lalal");
//对象
// vm.info.gender = "male";//不是响应式
//对象名称 添加的新的属性名 值
vm.$set(vm.info, "gender", "male");
</script>
版权声明:本文为Yueqin0512原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。