您现在的位置是:首页 > Javascript
当前栏目
V-for的使用
2023-04-18 16:11:08 时间
目录
1. v-for遍历普通数组
语法 : v-for="(item,index) in array"
item : 数组中的每一项
index : 索引值
如果只需要第一个参数item ,index可以不写,括号可以省略
<body>
<div id="app">
<ul>
<!-- in前边只写一个变量,变量中保存的是数据-->
<!-- <li style="color:red" v-for="item in array">{{item}}</li>-->
<!-- in前边写2个变量,第一个变量中保存的是数据,第二个变量中保存的是下标-->
<li style="color:red" v-for="(item,index) in array">{{item}} -- {{index}}</li>
</ul>
</div>
<script>
new Vue({
el:'#app',
data:{
array:['吃饭','睡觉','敲代码']
}
})
</script>
</body>
2.v-for遍历对象数组
语法 : v-for="(item,index) in array"
item : 数组中的每一项(每一个对象)
index : 索引值
如果只需要第一个参数item ,index可以不写,括号可以省略
<body>
<div id="app">
<table>
<thead>
<tr>
<th><input type="checkbox"></th>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in array">
<td><input type="checkbox"></td>
<td>{{index+1}}</td>
<td>{{item.name}}</td>
<td>{{item.age}}</td>
<td>{{item.sex}}</td>
<td>
<button>编辑</button>
<button>删除</button>
</td>
</tr>
</tbody>
</table>
</div>
<script>
new Vue({
el:'#app',
data:{
array:[
{
name:'小红',
age:21,
sex:'女'
},
{
name:'小黄',
age:21,
sex:'男'
},
{
name:'小蓝',
age:21,
sex:'男'
}
]
}
})
</script>
</body>
3.v-for遍历对象
语法 : v-for="(value,key,index) in obj"
value: 属性值
key : 属性
index : 索引值
如果只需要第一个参数value,那么key 和index可以不写,括号可以省略
<body>
<div id="app">
<ul>
<!-- in前边只写一个变量,变量中保存的是属性值-->
<!-- <li v-for="o1 in obj">{{o1}}</li>-->
<!-- in前边写2个变量,第一个变量中保存的是属性值,第二个变量中保存的是属性名-->
<!-- <li v-for="(o1,o2) in obj">{{o1}}--{{o2}}</li>-->
<!-- in前边写2个变量,第一个变量中保存的是属性值,第二个变量中保存的是属性名,第三个变量中保存的是下标-->
<li v-for="(o1,o2,o3) in obj">{{o1}}--{{o2}}--{{o3}}</li>
</ul>
</div>
<script>
new Vue({
el:'#app',
data:{
obj:
{
name:'小红',
age:21,
sex:'女'
}
}
})
</script>
</body>
注意 : 永远不要把v-if 和 v-for 同时用在一个元素上,因为v-for的优先级高于v-if,当v-if去判断条件时,v-for已经遍历结束
如果,我们确实需要判断条件再渲染,那么,可以先把数据处理好,再遍历处理好的数据(计算属性,以后讲解),或者在遍历元素的父元素上进行判断
下面,我们用第二种方法实现数据的判断与渲染
<body>
<div id="app">
<h1>人员信息表</h1>
<table border="1px solid #333" >
<thead>
<tr>
<th><input type="checkbox"></th>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>操作</th>
</tr>
</thead>
<tbody v-if="bool">
<tr v-for="(item,index) in obj.result">
<td><input type="checkbox"></td>
<td>{{index+1}}</td>
<td>{{item.name}}</td>
<td>{{item.age}}</td>
<td>{{item.sex}}</td>
<td>
<button>编辑</button>
<button>删除</button>
</td>
</tr>
</tbody>
</table>
</div>
<script>
new Vue({
el: '#app',
data: {
bool:'obj.code===200',
obj:{
code: 200,
message: '响应成功',
result: [
{
name: '小红',
age: 21,
sex: '女'
},
{
name: '小黄',
age: 21,
sex: '男'
},
{
name: '小蓝',
age: 21,
sex: '男'
}
]
}
}
})
</script>
</body>
相关文章
- Transflow:Quake 是如何构建以 DSL 为核心的低代码系统?
- 教你用四步快速将图表集成到场景
- 浅淡一个VFP+VUE项目的搭建的心得
- 【JS 逆向百例】网洛者反爬练习平台第二题:JJEncode 加密
- Web图像组件设计的最佳实践
- 通过原生JS实现打分(打星)效果
- Svelte入门——Web Components实现跨框架组件复用(二)
- Spring Boot应对Log4j2注入漏洞官方指南
- Log4j 2.16.0发布,受Log4j漏洞影响的Apache项目一览
- 在CSS中写 when/else 是什么体验
- uni-app 之list
- 在vue中实现监听localstorage中某个键对应的值的变化
- vue 中CSS样式变量获取data数据变量
- 使用 Swagger 的扩展组件Plugin 机制自定义API文档的生成
- 关于SpringBoot开发的更多细节
- Spring Boot 自定义配置key @ConfigurationProperties(prefix = "db.clickhouse")
- 用nodejs加腾讯云api搞了一个发票识别
- Hadoop大数据生态系统及常用组件
- vue单页面和多页面的区别
- 我 JS 写的好好的,为什么要用那么复杂的TS