Vue指令之`v-for`和`key`属性

2.2.0+ 的版本里,**当在组件中使用** v-for 时,key 现在是必须的。

当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “**就地复用**” 策略。如果数据项的顺序被改变,Vue将**不是移动 DOM 元素来匹配数据项的顺序**, 而是**简单复用此处每个元素**,并且确保它在特定索引下显示已被渲染过的每个元素。

为了给 Vue 一个提示,**以便它能跟踪每个节点的身份,从而重用和重新排序现有元素**,你需要为每项提供一个唯一 key 属性。

注意:

  在遍历对象身上的键值对的时候, 除了 有  val  key  ,在第三个位置还有 一个 索引  i

  v-for=" (val,key i)" ,如果只写一个参数表示值,两个是值和键 三个,值、键、索引

v-for 循环普通数组

<body>
    <!-- v-for 循环普通的数组 和使用foreach 挺像 -->

        <div class="box">
            <p v-for="(item,i) in list">索引值:{{i}}----------值:{{item}}</p>
        </div>

    <script src="./lib/vue-2.4.0.js"></script>
    <script>
    var vm=new Vue({
        el:‘.box‘,
        data:{
            list:[
                1,2,3,4,5,6
            ]
        }
    });

    </script>
</body>

v-for循环对象数组

<body>
    <div class="box">
        <p v-cloak v-for="(user,i) in list">id:{{user.id}}---------名称:{{user.name}}</p>
    </div>

    <script src="lib/vue-2.4.0.js"></script>
    <script>
        var vm=new Vue({
            el:‘.box‘,
            data:{
                list:[
                    {id:1,name:‘杜伟‘},
                    {id:2,name:‘王玥‘},
                    {id:3,name:‘任凯‘},
                    {id:4,name:‘刘海波‘}
                ]
            },
            methods:{

            }

        });
    </script>
</body>

v-for 循环对象

  

<body>
    <div class="box">
        <!-- 注意:在遍历对象身上的键值对的时候, 除了 有  val  key  ,在第三个位置还有 一个 索引  

        -->
        <p v-for="(item,i) in pipor">{{item}}----{{val}}-----{{i}}</p>
    </div>
    <script src="lib/vue-2.4.0.js"></script>
    <script>
        var vm=new Vue({
            el:‘.box‘,
            data:{
                pipor:{
                    id:1,
                    name:‘杜伟‘,
                    gender:‘男‘
                }
            }
        });
    </script>
    

v-for 迭代数字

  

<body>
    <div class="box">
        <p v-for="item in 10" v-text="item"> </p>
    </div>

    <script src="lib/vue-2.4.0.js"></script>
    <script>
        var vm=new Vue({
            el:‘.box‘,
            data:{

            }
        });
    </script>
</body>

原文地址:https://www.cnblogs.com/xiaowie/p/11577222.html

时间: 2024-08-03 17:50:05

Vue指令之`v-for`和`key`属性的相关文章

vue指令v-for和key属性

一.解释 1. 迭代数组 <ul> <li v-for="(item, i) in list">索引:{{i}} --- 姓名:{{item.name}} --- 年龄:{{item.age}}</li> </ul> 2. 迭代对象中的属性 <!-- 循环遍历对象身上的属性 --> <div v-for="(val, key, i) in userInfo">{{val}} --- {{key}

Vue框架(一)——Vue导读、Vue实例(挂载点el、数据data、过滤器filters)、Vue指令(文本指令v-text、事件指令v-on、属性指令v-bind、表单指令v-model)

Vue导读 1.Vue框架 vue是可以独立完成前后端分离式web项目的js框架 三大主流框架之一:Angular.React.Vue vue:结合其他框架优点.轻量级.中文API.数据驱动.双向绑定.MVVM设计模式.组件化开发.单页面应用 Vue环境:本地导入和cdn导入 2.Vue是渐进式js框架 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架方式完成整个web前端项目.3.怎么使用vue 去官网下载然后导入 <div id="app">

Vue指令续加组件

---恢复内容开始--- v-once指令 v-once:单独使用,限制的标签内容一旦赋值,便不可被动修改,也就失去了被动双向绑定的特性,如果是输入框,可以主动手动修改 示例: <div id="app"> <input type="text" v-model="msg"> <!-- 一旦赋值,只可主动更改 --> <input type="text" v-model="ms

vue指令及组件

复习 """ vue: 为什么选择vue - 综合其他框架优点,轻量级,中文API,数据驱动,组件化开发,数据的双向绑定,虚拟DO 渐进式js框架 - 选择性控制 - 创建一个vue实例对象,关联一个挂载点 实例成员: el:body,html不能,通常用id,css3选择器语法 data: 数据,字典形式 filters:过滤器函数 fn(a, b) - {{ a | fn(b) }} | {{ a,b | fn }} methods: 事件方法 指令: 文本:{{ }}

第三篇:Vue指令

Vue指令 1.文本指令相关 v-*是Vue指令,会被vue解析,v-text="num"中的num是变量(指令是有限的,不可以自定义) v-text是原样输出渲染内容,渲染控制的标签自身内容会被替换掉( 123 会被num替换) v-html可以解析渲染html语法的内容 <div id="app"> <!-- 插值表达式 --> <p>{{ msg }}</p> <!-- eg:原文本会被msg替换 --&g

VUE指令-样式绑定v-bind

样式绑定v-bind 操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错.因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强.表达式结果的类型除了字符串之外,还可以是对象或数组. v-bind:style <!-- 格式v-bind:style="{ key:value }" --> <!--

VUE指令-列表渲染v-for

v-for 指令根据一组数组的选项列表进行渲染.v-for 指令需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名. v-for="item in items" <!-- 格式v-for="item in items" --> <div style="height: 150px;background: #CCC;margin: 5px;"> <div s

Vue.js 源码分析(十) ref属性详解

用法 ref 被用来给元素或子组件注册引用信息.引用信息将会注册在父组件的 $refs 对象上.如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素:如果用在子组件上,引用就指向组件实例,例如: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <scrip

(尚016)Vue指令(11个自带指令+自定义指令)

1.Vue常用指令 1)v:text:更新元素的 textContent 2)v-html:更新元素的 innerHTML 3)v-if:如果为true,当前标签才会输出到页面 4)v-else:如果为false,当前标签才会输出到页面 5)v-show:通过控制display样式来控制显示/隐藏 6)v-for:遍历数组/对象(最终通过列表显示) 7)v-on:绑定事件监听,一般简写为@ 8)v-bind:强制绑定解析表达式,可以省略v-bind,简写为  : 9)v-model:双向数据绑定