vue学习笔记(一) ---- vue指令(v-for 和 key 属性)
vue指令之v-for和key属性
一、 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 属性)的更多相关文章
- 【Vue学习笔记】—— vue的基础语法 { }
学习笔记 作者:oMing vue v-on: 简称 @ <div id='app'> <button v-on:click='Show1'> </button> ...
- vue学习笔记(二)vue的生命周期和钩子函数
前言 通过上一章的学习,我们已经初步的了解了vue到底是什么东西,可以干什么,而这一篇博客主要介绍vue的生命周期和它常用的钩子函数,如果有学过java的园友可能有接触到在学习servlet的时候学过 ...
- vue学习笔记:vue的认识与特点与获取
Vue了解 Vue:读作 view Vue是一个渐进式框架 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整 ...
- Vue学习笔记之Vue指令系统介绍
所谓指令系统,大家可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. OK,接下来我们 ...
- vue学习笔记—bootstrap+vue用户管理
vue,读音view,简单易用的前端框架.特点如下: 1.一个mvvm的前端框架,内部做好了html中dom对象和后台用js语言定义的变量的双向绑定 2.中国人尤雨溪维护的个人项目,中文资料多,和go ...
- VUE学习笔记之vue cli 构建项目
一.环境搭建: 1.安装node.js 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了.安装完成之后,打开命令行工具(win+r,然后输入cmd), ...
- Vue学习笔记之Vue知识点补充
0x00 修饰符 .lazy 在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 .你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步: &l ...
- Vue学习笔记之Vue学习前的准备工作
0x00 起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐 ...
- Vue学习笔记之Vue组件
0x00 前言 vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例 ...
- Vue学习笔记之Vue的使用
0x00 安装 对于新手来说,强烈建议大家使用<script>引入 0x01 引入vue.js文件 我们能发现,引入vue.js文件之后,Vue被注册为一个全局的变量,它是一个构造函数. ...
随机推荐
- xss学习笔记(萌新版)
xss简介 xss攻击者构造恶意信息然后在用户的浏览器上执行,主要分为反射性xss,这种主要是某个页面存在有漏洞的参数,然后填上恶意参数把整个链接发给用户或者管理员,他们点击了带有恶意参数的链接就会执 ...
- C++ 中指针常量、指向常量的指针、引用类型的常量
命题1. 在C++ 中 const T a 与 T const a 是一样的, 表示a是一个T类型的常量. 测试: 一. 形参定义为引用类型的常量 在函数传参时,形参若定义为 const T& ...
- 4.django-模板
在django中,模板引擎(DTL)是一种可以让开发者将服务端数据填充到html页面中的完成渲染的技术 模板引擎的原理分为以下三步: 在项目配置文件中指定保存模板文件的的模板目录,一般设置在项目根目录 ...
- 2022春每日一题:Day 36
题目:[JLOI2013]删除物品 直接做显然比较复杂,这个题是说对顶栈,但是可以把两个栈拼在一起,记录一下栈顶的下标,然后这样这题就可以转化为线性上的操作查询了,用树状数组简单维护一下就ok了(某个 ...
- go工具pprof部署
在做内存分析时,用到了pprof,这里做一下部署介绍和入门级别的使用. pprof是golang的性能工具,有两种交互方式:命令行交互和web交互,同时还支持性能分析数据的图形化展示. 部署pprof ...
- 深度探索Go语言:包装方法
问题1:什么是包装方法? 下面咱们来验证下包装方法的存在: 首先,定义一个Point类型,表示一维坐标系内的一个点,并且按照Go语言的风格为其实现了一个Get方法和一个Set方法. package g ...
- 如何安装Visual Studio Community2022
如何安装Visual Studio Community2022 Visual Studio是一款强大的IDE(集成开发环境),对于初学者可以选择使用社区版,下面是Visual Studio Commu ...
- 06#Web 实战:实现可滑动的标签页
实现效果图 本随笔只是记录一下大概的实现思路,如果感兴趣的小伙伴可以通过代码和本随笔的说明去理解实现过程.我的 Gitee 和 GitHub 地址.注意哦:这个只是 PC 上的标签页,手机端的没用,因 ...
- 《回炉重造》——Lambda表达式
前言 Lambda 表达式(Lambda Expression),相信大家对 Lambda 肯定是很熟悉的,毕竟我们数学上经常用到它,即 λ .不过,感觉数学中的 Lambda 和编程语言中的 Lam ...
- 解决Linux使用deepin-wine跑qq,tim打不开文件所在文件夹
前言 使用deepin-wine 跑qq,发现一个小bug 这里点击打开文件夹是没有效果的,包括在 tim 上也是这样 问题原因 出现这个问题是因为 deepin-wine 跑的 QQ,Tim 打开文 ...