v-for 指令为 vue 中的循环标签,用来根据数组循环创建元素。非常重要,一定要掌握。下面将逐一介绍:
vue 中 可以使用 v-for="value of datas" 或者 v-for="value in datas" 指令去迭代数组。实例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>学习 VUE 框架</title>
<script type="text/javascript" src="../libs/vue-2.6/vue.js"></script>
</head>
<body>
<div id="app">
<!-- 可以使用 v-for="todo of todos" 去替代 -->
<p v-for="todo in todos">
{{ todo }}
</p>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
todos: ["洗衣服", "做饭", "扫/拖地"]
}
})
</script>
</body>
</html>输出:
<p>洗衣服</p> <p>做饭</p> <p>扫/拖地</p>
迭代数组,我们可以获取数组的下标索引值。v-for 指令提供了获取下标的方法,如下:
<p v-for="(todo, index) in todos">
{{ index + ' - ' + todo.text }}
</p>数组中不仅可以存放基础数据,还能存放一个个对象。下面实例将演示,在数据中存放对象。然后使用 v-for 注意迭代,获取对象的值:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>学习 VUE 框架</title>
<script type="text/javascript" src="../libs/vue-2.6/vue.js"></script>
</head>
<body>
<div id="app">
<p v-for="todo in todos">
{{ todo.text }}
</p>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
todos: [
{ text: '学习 JavaScript' },
{ text: '学习 Vue' },
{ text: '学习 SpringBoot' }
]
}
})
</script>
</body>
</html>输出:
<p>学习 JavaScript</p> <p>学习 Vue</p> <p>学习 SpringBoot</p>
v-for 指令不仅仅能够迭代数组,而且还能迭代对象。获取对象中每个属性的key 和 value,实例代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>学习 VUE 框架</title>
<script type="text/javascript" src="../libs/vue-2.6/vue.js"></script>
</head>
<body>
<div id="app">
<!-- 此处的 todo 是一个对象,我们可以再 {{}} 中使用点 "." 进行获取 -->
<p v-for="value in user">
{{value}}
</p>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
user: {
id: 10000,
name: 'Helen',
sex: 'male',
email: 'helen@qq.com'
}
}
})
</script>
</body>
</html>输出:
<p>10000</p> <p>Helen</p> <p>male</p> <p>helen@qq.com</p>
上面实例中,我们 v-for 指令返回的是一个对象,需要使用 obj.key 的方式去获取值。假如我们需要去获取 key,该怎么处理呢?可使用 v-for="(value, key) in user" 指令去获取对象的每个属性和值。实例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>学习 VUE 框架</title>
<script type="text/javascript" src="../libs/vue-2.6/vue.js"></script>
</head>
<body>
<div id="app">
<p v-for="(value, key) in user">
{{key + ' = ' + value}}
</p>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
user: {
id: 10000,
name: 'Helen',
sex: 'male',
email: 'helen@qq.com'
}
}
})
</script>
</body>
</html>输出:
<p>id=10000</p> <p>name=Helen</p> <p>sex=male</p> <p>email=helen@qq.com</p>
v-for还有另一种用法,即可以循环数字,使用 v-for="value in 4" 指令。实例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>学习 VUE 框架</title>
<script type="text/javascript" src="../libs/vue-2.6/vue.js"></script>
</head>
<body>
<div id="app">
<p v-for="value in 4">
{{value}}
</p>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {}
})
</script>
</body>
</html>输出:
<p>1</p> <p>2</p> <p>3</p> <p>4</p>