vue指令之v-forkey属性

一、 v-for

1. v-for遍历数组

<div id="app">
<h3>好饿,我好想吃~~~~</h3>
<ul v-for="menu in list">
<li>{{menu}}</li>
</ul>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
list:['鸭血粉丝','螺蛳粉','大碗米线','黄焖鸡','地锅鸡']
}
})
</script>

来吧展示:



如果需要索引,则给v-for传入一个参数,index表示的是索引(名称任意取)

<div id="app">
<h3>好饿,我好想吃~~~~</h3>
<ul v-for="(menu,index) in list">
<li>安排一下啵:{{index}}--------{{menu}}</li>
</ul>
</div>

2. v-for循环数组对象 01



传入多个对象:

<div id="app">
<h3>好饿,我好想吃~~~~</h3>
<!-- <ul v-for="(menu,index) in list">-->
<!-- <li>安排一下啵:{{index}}--------{{menu}}</li>-->
<!-- </ul>-->
<ul v-for="(menu,index) in list">
<li>第{{menu.num}}好吃--------{{menu.name}}-------索引{{index}}</li>
</ul>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
// list:['鸭血粉丝','螺蛳粉','大碗米线','黄焖鸡','地锅鸡']
list:[
{num:1,name:'鸭血粉丝'},
{num:2,name:'螺蛳粉'},
{num:3,name:'大碗米线'},
{num:4,name:'黄焖鸡'},
{num:5,name:'地锅鸡'}
]
}
})
</script>

2. v-for循环数组对象 02

<div id="app">
<ul>
<li v-for="(val,key,i) in menu">键:{{key}} ----- 值:{{val}} ----- 索引下标:{{i}}</li>
</ul>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
menu:{
num:1,
name:'小米椒爱上小公鸡',
message:'噢~~~这该死的美味'
}
}
})
</script>

3.v-for循环数值

<p v-for="(item,i) in 10">这是数值:{{item}}-----这是索引:{{i}}</p>

二、key属性的使用

通过一个案例来引入key

<body>
<div id="app">
<div>
<label>Id:
<input type="text" v-model="num">
</label>
<label>Name:
<input type="text" v-model="name">
</label> <input type="button" value="添加" @click="add">
</div>
<ul>
<li v-for="(menu,i) in list">
<input type="checkbox"/>排名:{{menu.num}}------美味:{{menu.name}}
</li>
</ul>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
num: '',
name: '',
list:[
{num:1,name:'鸭血粉丝'},
{num:2,name:'螺蛳粉'},
{num:3,name:'大碗米线'},
{num:4,name:'黄焖鸡'},
{num:5,name:'地锅鸡'}
]
},
methods: {
add() { // 添加方法
this.list.unshift({ num: this.num, name: this.name })
}
}
})
</script>
</body>

来吧展示:

问题:

当选中状态的时候取添加元素,我们发现,选中的状态自动跳到下一个input中取,并没有保持它原来的元素的状态

原因:在默认情况下,我们从data把一个数组渲染到页面上的时候,就不会再关注这个状态了

解决方法:

给元素绑定一个key属性 v-bind:key="里面是唯一的标识符"

这个状态和当前循环的数值做了一个绑定关系,所以状态会存在

所以只要涉及到v-for循环,建议给循环的每一项都加上:key这个属性

 <li v-for="(menu,i) in list"  :key="menu.num">

来吧展示:

vue学习笔记(一) ---- vue指令(v-for 和 key 属性)的更多相关文章

  1. 【Vue学习笔记】—— vue的基础语法 { }

    学习笔记 作者:oMing vue v-on: 简称 @ <div id='app'> <button v-on:click='Show1'> </button> ...

  2. vue学习笔记(二)vue的生命周期和钩子函数

    前言 通过上一章的学习,我们已经初步的了解了vue到底是什么东西,可以干什么,而这一篇博客主要介绍vue的生命周期和它常用的钩子函数,如果有学过java的园友可能有接触到在学习servlet的时候学过 ...

  3. vue学习笔记:vue的认识与特点与获取

    Vue了解 Vue:读作 view Vue是一个渐进式框架 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整 ...

  4. Vue学习笔记之Vue指令系统介绍

    所谓指令系统,大家可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. OK,接下来我们 ...

  5. vue学习笔记—bootstrap+vue用户管理

    vue,读音view,简单易用的前端框架.特点如下: 1.一个mvvm的前端框架,内部做好了html中dom对象和后台用js语言定义的变量的双向绑定 2.中国人尤雨溪维护的个人项目,中文资料多,和go ...

  6. VUE学习笔记之vue cli 构建项目

    一.环境搭建: 1.安装node.js 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了.安装完成之后,打开命令行工具(win+r,然后输入cmd), ...

  7. Vue学习笔记之Vue知识点补充

    0x00 修饰符 .lazy 在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 .你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步: &l ...

  8. Vue学习笔记之Vue学习前的准备工作

    0x00 起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐 ...

  9. Vue学习笔记之Vue组件

    0x00 前言 vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例 ...

  10. Vue学习笔记之Vue的使用

    0x00 安装 对于新手来说,强烈建议大家使用<script>引入 0x01 引入vue.js文件 我们能发现,引入vue.js文件之后,Vue被注册为一个全局的变量,它是一个构造函数. ...

随机推荐

  1. 嵌入式-C语言基础:字符串strlen和sizeof的区别

    strlen表示的实际的字符串长度,不会把字符串结束符'\0'计算进去,而sizeof则不是实际的字符串长度,它会把字符串的结束标识符'\0'也包含进去. #include<stdio.h> ...

  2. 1、ArrayList源码解析

    目录 1 概述 2 底层数据结构 3 构造函数 4 自动扩容 5 set() get() remove() 6 Fail-Fast机制 1 概述 ArrayList实现了List接口,是 顺序容器,允 ...

  3. 第2-4-5章 规则引擎Drools高级语法-业务规则管理系统-组件化-中台

    目录 6. Drools高级语法 6.1 global全局变量 6.2 query查询 6.3 function函数 6.4 LHS加强 6.4.1 复合值限制in/not in 6.4.2 条件元素 ...

  4. 获取联通光猫PT952G的管理员密码

    前言 普通用户的帐号和密码在光猫的背面 输入光猫网关即可跳转到登录界面 但是没有什么权限操作东西,所以我找到了管理员界面 输入 网关+cu.html 即可跳转到管理员界面 例如我这里是http://1 ...

  5. 关于linux更改root用户下面的鼠标样式

    前言 这几天一直研究关于 lightmd 显示管理器(也就是刚进入系统的用户登录界面)的主题配置问题,我发现鼠标样式和登录个人用户的鼠标样式不一样(之前我也发现了,懒得捣鼓)今天抽出时间研究了一下,这 ...

  6. Python中内置数据库!SQLite使用指南! ⛵

    作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 本文地址:https://www.showmeai.tech ...

  7. 【数据库】Postgresql、PG的分区操作:创建、删除指定分区,非分区表转分区表

    〇.参考链接 一.为表创建指定分区 -- 表创建分区 参数 表名 分区序列 例如: ltc_customer , 20220915 则创建 ltc_customer_20220915 分区表 CREA ...

  8. 【微服务架构设计实施】第一部分:架构篇-1:微服务架构与Spring Cloud介绍

    〇.概述 一.微服务架构与Spring Cloud (一)概念 不同说法:细粒度的.清凉组件化的小型SOA(面向服务架构) 统一说法:小型应用程序(服务组件),使用轻量级设计方法和HTTP协议通信 理 ...

  9. 【大数据面试】【框架】Flume:Source的断点续传、重复数据、Channel选择

    〇.用途 流式结构 获取磁盘日志,拦截器过滤后,传递指定数据,写入HDFS或kafka 一.组成-Source.Channel.Sink 事务(put/take) 1.Source---taildir ...

  10. 可视化软件Navicat,python操作MySQL

    可视化软件Navicat 第三方开发的用来充当数据库客户端的简单快捷的操作界面 无论第三方软件有多么的花里胡哨,底层的本质还是SQL 能够操作数据库的第三方可视化软件有很多,其中针对MySQL最出名的 ...