在vue中,v-for是根据数据来渲染元素,
如果使用v-for根据需求指定来渲染就要使用以下技术
template
标签来进行包裹,因为在渲染的时候,会忽略template
标签的渲染template
添加key值,因为key值必须添加到真是元素上,现有一需求 :
------------------根据数据中的isDone为true用li标签渲染
------------------根据数据中的isDone为false用p标签渲染
需要使用template把p和li包裹在一起,对template使用v-for指令,再对p和li使用条件渲染,然后添加key值
<template>
<div>
<h1>列表渲染</h1>
<template v-for="(item,index) in list ">
<li
v-if="item.isDone"
:key="index"
>{{item.name}}</li>
<p
v-else
:key="index"
>{{item.name}}</p>
</template>
</div>
</template>
<script>
export default {
data() {
return {
list: [
{ name: "甲", isDone: false },
{ name: "乙", isDone: false },
{ name: "丙", isDone: true },
{ name: "丁", isDone: false },
{ name: "戊", isDone: true },
{ name: "己", isDone: false },
{ name: "庚", isDone: true },
],
};
},
};
</script>
<style>
</style>
最终的渲染结果 :
对数据进行条件列表渲染总结 :