Vue-列表渲染指令

v-for 

语法:v-for="(参数1,可选参数1,可选参数2) in 数组名" 

参数1是元素,也是这个数组

如果可选参数只写一个,那么这个可选参数就是数组的索引,

如果可选参数写两个,那么第一个可选参数是键值对,第二个可选参数是索引

它会渲染依次渲染数组里面的属性

数组有几个元素,这里面li标签就会渲染多少个 

<body>
    <div id="app">
     <input type="text" v-model="name">
     <p><button @click="adduser">添加</button></p>
     <ul>
      <li v-for="(n,i) in List">
      <input type="checkbox" >
        姓名:{{n.name}} </li>
     </ul>
    </div>
<script>
  const vm={
    data(){
      return{  
        //建立一个名叫List的数组
       List:[{name:'zhangsan',id:1},
             {name:'lisi',id:2},
             {name:'wang',id:3},
       ],
       name:'',
       nextid:4
      }
    },
    methods:{
        adduser(){
         this.List.unshift({name:this.name , id:this.nextid}),
         this.name='',
         this.nextid++
      }
    }
  }
  const app=Vue.createApp(vm)
  app.mount('#app')
</script>
  
</body>

这里面有一个小问题,就是当我勾选这个多选框时,再添加一个人 

比如我想再添加一个叫‘moli’的人,你会发现多选框自己给勾上了,并且‘zhangsan’没有被勾上了 ,这是因为vue默认li标签里的元素内容没有变化,只是添加了一个元素

 

 v-for中的key

这个时候key的作用就体现出来了,key的值必须要是唯一的关键字

因为数组里面的id是唯一的,不重复,所以用这个值给key 

 <li v-for="(n,i) in List" :key="n.id">

此时,我们再添加‘moli’,就不会出现这个bug

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值