Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。这些被包裹过的方法包括:push()。
pop()
shift()
unshift()
splice()
sort()
reverse()
以上七个数组都会改变原数组,下面来分别讲解它们的区别:var list = [3,4,5,6]。
1. push() 向数组的尾部添加若干元素,并返回数组的新长度;
list.push(7,8) //返回数组的长度6。
list //list=[3,4,5,6,7,8]。
2. pop() 从数组的尾部删除一个元素(删且只删除一个元素),返回被删除的元素。
list.pop() //返回删除的数组6。
list //list=[3,4,5]。
3. unshift() 向数组的头部添加若干元素,返回数组的新长度。
list.unshift(1,2) //返回数组的长度6。
list //list=[1,2,3,4,5,6]。
4. shift() 从数组的头部删除一个元素(删且只删除一个元素),返回被删除的元素。
list.shift() //返回删除的元素3。
list //list=[4,5,6]。
ps:pop()和shift()方法不接受传参,传参了也没有什么用。
空数组可以删除,不报错,但返回undefined。
5. splice() 该方法有如下3种用法:删除 —— 可以删除任意数量的项,只需要指定2个参数:要删除的第一项的位置和要删除项的项数。
插入 —— 可以向指定位置插入任意数量的项,只需要提供3个参数:插入起始位置、0(要删除的项数)和要插入的项。 如果要插入多个项,可以再传入第四、第五,一直任意多个项。
替换 —— 可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需要指定3个指定参数:起始位置、要删除的项数和要插入的任意数量项。 插入的项数是不必与删除的项数相等。
var colors = ["red", "green", "blue"];。
var removed = colors.splice(0,1); //删除第一项。
alert(colors); //green,blue。
alert(removed); //red,返回数组中值包含一项。
removed = colors.splice(1, 0, "yellow", "orange"); //从位置1开始插入两项。
alert(colors); //green,yellow,organge,blue。
alert(removed); //返回的是一个空数组。
removed = colors.splice(1, 1, "red", "purple"); //插入两项,删除一项。
alert(colors); //green,red,purple,orange,blue。
alert(remove); //yellow, 返回的数组中只包含一项。
6. sort() 该方法用于对数组的元素进行排序。
list:["George","John","Thomas","James","Adrew","Martin"];
list.sort(); //["Adrew", "George", "James", "John", "Martin", "Thomas"]。
ps: 因为sort()排序默认的是根据字符串UniCode码进行排序,所以如果要对数字进行排序的话,参数要传递一个比较函数。
list:["100","24","489","22","307","6"];
sortNumber(a,b){。
return a-b
};
list.sort(sortNumber) //["6", "22", "24", "100", "307", "489"]。
7. reverse() 该方法用于颠倒数组中元素的顺序。
list:["kwz","John","Thomas","James","Adrew","Martin"]。
list.reverse(); //["Martin", "Adrew", "James", "Thomas", "John", "kwz"]。
方法/步骤
新建一个html代码页面,然后创建一个<div>,然后给这个<div>设置id为app。
请点击输入图片描述
引入vue.js文件。引入已经下载好的vue.js文件。
请点击输入图片描述
创建vue实例。在引入的vue.js文件后新建一个<script>,然后只用new Vue()创建vue设置挂载点。
代码:
<script>
var app = new Vue({。
el:"#app"
})
</script>。
请点击输入图片描述
添加数组。在Vue里添加一个items的数组。
代码:
data:{
items:["张三","李四","王五"]。
请点击输入图片描述
创建vue组件,使用v-for把items数组遍历,然后把遍历好的数据转给子组件,子组件通过props获取父组件传递的参数。
html代码:
<todo-item v-for="item in items" :item="item"></todo-item>。
vue组件代码:
Vue.component("todo-item",{。
props:['item'],。
template:"<div>{{item}}</div>"。
})
请点击输入图片描述
保存html文件后使用浏览器打开,即可看到浏览器上打印出items数组数据。
请点击输入图片描述
在vue中,若直接给一个空对象添加一个属性并且是响应式的,必须使用$set方法,只有这样才能让视图同步刷新。
当对象的属性存在时就赋值,不存在则给其添加属性,再赋值。

//判断属性是否存在
if (!this.user.age) {。
//参数:对象,要添加的属性名,属性值。
this.$set(this.user, "age", 20)。
} else {
this.user.age = 20。
除了可以给对象添加属性外,还可以对数组添加元素。

//给数组arr第二个元素赋值20。
this.$set(this.arr, 1, 20)。
除了使用this.$set()方法外,还可以使用this.$forceUpdate();进行强制更新,有时需要两个一起使用才能强制刷新视图。
答
v-for是vue.js中的指令,用于遍历数组或对象中的数据,动态添加dom。使用v-for指令时,需要提供一个数组或对象,它会根据提供的数据来渲染相应的dom结构。v-for指令的语法是:v-for="(item,index) in items",其中items是要遍历的数组或对象,item是当前遍历到的元素,index是当前遍历到的元素的索引。使用v-for指令可以快速的渲染出dom结构,而不用写大量的dom结构代码。
VueList是Vue.js的一个列表组件,如果你想在VueList中使用map,可以在列表渲染中使用v-for指令,例如:
1、{{item}}exportdefault{data(){return{items:[1,2,3,4,5]}}}在上面的代码中,我们使用v-for指令遍历了一个名为items的数组,并为每个数组项渲染了一个li元素。请注意,为了避免Vue.js的重复key警告,每个循环的元素都应该有一个唯一的key属性。在上面的代码中,我们使用数组项的索引作为key。
原文地址:http://www.qianchusai.com/vue%E6%95%B0%E7%BB%84%E6%B7%BB%E5%8A%A0%E5%85%83%E7%B4%A0.html