Vue列表渲染(v-for)以及key的作用与原理

这篇具有很好参考价值的文章主要介绍了Vue列表渲染(v-for)以及key的作用与原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

索引值的两种写法: 

Vue列表渲染(v-for)以及key的作用与原理,linerVue,vue.js,前端,javascript

<!--index遍历时的默认索引值-->
<ul>
            <li v-for="(p,index) in persons":key="index">
                {{p.name}}--{{p.age}}
            </li>
        </ul>

 文章来源地址https://www.toymoban.com/news/detail-591170.html

 代码:

v-for="p in persons"  :key="p.id"

        persons 指的是data中定义的那些数据,数据池。

        p :是一个形参,接收persons中的每一个数据。

        :key="p.id" :动态绑定数据,让每一个li都有唯一的标识(每一个节点的标识)。

<body>
    <div id="root">
        <h2>人员列表</h2>
        <ul>
            <li v-for="p in persons":key="p.id">
                {{p.name}}--{{p.age}}
            </li>
        </ul>
    </div>
<script>
    new Vue({
        el:'#root',
        data:{
            persons:[
                {id:'001',name:'张三',age:'18'},
                {id:'002',name:'里嘶',age:'12'},
                {id:'003',name:'王五',age:'19'},
            ]
        }
    })
</script>
</body>

 Vue列表渲染(v-for)以及key的作用与原理,linerVue,vue.js,前端,javascript

 遍历数组和遍历对象:

<body>
    <div id="root">
        <!--遍历数组-->
        <h2>人员列表</h2>
        <ul>
            <li v-for="(p,index) in persons":key="index">
                {{p.name}}--{{p.age}}
            </li>
        </ul>
        <!--遍历对象-->
        <h2>车辆信息</h2>
        <ul>
            <li v-for="(value,k) in car" :key="k">
                {{k}}--{{value}}
            </li>
        </ul>
    </div>
<script>
    new Vue({
        el:'#root',
        data:{
            persons:[
                {id:'001',name:'张三',age:'18'},
                {id:'002',name:'里嘶',age:'12'},
                {id:'003',name:'王五',age:'19'},
            ],
            car:{
                name:'奥迪a8',
                price:'70万',
                color:'黑色',
            }
        }
    })
</script>
</body>

Vue列表渲染(v-for)以及key的作用与原理,linerVue,vue.js,前端,javascript

 关于key作用与原理:

        index作为key进行遍历(虚拟dom里面用数据以及节点内部结构进行对比,相同不更新用之前的数据,不同新的数据覆盖旧的数据)

Vue列表渲染(v-for)以及key的作用与原理,linerVue,vue.js,前端,javascript

         id作为key进行遍历(虚拟dom里面用key进行对比):Vue列表渲染(v-for)以及key的作用与原理,linerVue,vue.js,前端,javascript

 用index会出现的问题:

<div id="root">
    <!--遍历数组-->
    <h2>人员列表</h2>
    <button @click.once="add">添加一个运动员</button>
    <ul>
        <li v-for="(p,index) in persons":key="index">
            {{p.name}}--{{p.age}}
            <input type="text">
        </li>
    </ul>
</div>
<script>
    new Vue({
        el:'#root',
        data:{
            persons:[
                {id:'001',name:'张三',age:'18'},
                {id:'002',name:'里嘶',age:'12'},
                {id:'003',name:'王五',age:'19'},
            ],
        },
        methods:{
            add(){
                const p = {id:'004',name:'马龙',age:'30'}
                this.persons.unshift(p)
            }
        }
    })
</script>
</body>

添加前:

Vue列表渲染(v-for)以及key的作用与原理,linerVue,vue.js,前端,javascript

 添加后:顺序乱了Vue列表渲染(v-for)以及key的作用与原理,linerVue,vue.js,前端,javascript

 总结:

Vue列表渲染(v-for)以及key的作用与原理,linerVue,vue.js,前端,javascript

 

到了这里,关于Vue列表渲染(v-for)以及key的作用与原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 已解决:Vue改变数据后界面不自动渲染,Vue中使用v-for遍历对象数组,当给其中某个元素对象重新赋值之后,页面组件列表没有渲染更新。

    问题如标题所说,Vue中使用v-for遍历对象数组,当给数组其中某个元素对象重新赋值之后,页面组件列表没有及时更新渲染,而是在页面进行了其他的渲染操作以后列表才更新出来新的数据,那同样给对象内的属性值赋值也可能存在不渲染的情况,一并解决,尤其发生在网络

    2024年02月06日
    浏览(58)
  • 微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明

    1.1. 语法格式 (wx:if, wx:elif ,wx:else) 当condition条件为true时,代码块渲染显示,为false时,代码块不进行渲染. 可以结合 wx:elif=“{{condition}}” 和 wx:else来进行判断 1.2. block标记 可以使用block标记,一次性的控制多个组件的显示与隐藏,block标记本身并不进行渲染。 block并不是一个组

    2024年02月16日
    浏览(48)
  • Vue 常用指令 v-for 列表循环

    v-for:根据数据生成列表结构,并且是响应式的,可以十分便捷的操作列表结构了。 至于是什么样的列表,就看你指令使用的位置了, 列表的生成依赖于数据,所以先去定义数据。 它结合的类型挺多的,数组,对象,迭代器,字符串,最常使用的是数组。这里使用数组来演

    2024年02月14日
    浏览(40)
  • 【Vue】v-for中:key中item.id与Index使用的区别

    先说结论,推荐使用【:key=\\\"item.id\\\"】而不是将数组下标当做唯一标识,前者能做到全部复用 场景:删除无序列表中的li标签

    2024年02月22日
    浏览(38)
  • 【微信小程序】-- WXML 模板语法 - 列表渲染 -- wx:for & wx:key(十二)

    💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘   大家好,又见面了,

    2024年02月12日
    浏览(43)
  • [vue]v-for循环出的列表如何实现每一项单独展开收起

    展开收起最后一项的内容,展开收起的图标和信息改变 HTML代码 javasript data中声明要循环的数据、当前的下标(string类型) data中声明要循环的数据、当前的下标数组类型(array) 思路:判断当年下标是否在数组下标中来控制展开收起,不存在就将该下标加入数组,再点击一次

    2024年02月12日
    浏览(45)
  • Vue中key的作用和原理

    如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。key 是为 Vue 中 vnode 的唯一标记,通过key, diff 操作可以更准确、更快速 diff过程可以概括为:oldCh和newCh各有两个头尾的变量StartIdx和EndIdx,它们的2个变量相互比较,一

    2023年04月22日
    浏览(35)
  • 面试题:react、 vue中的key有什么作用? (key的内部原理)

    1.虚拟DOM中key的作用: key是虚拟DOM对象的标识,当状态中的数据发生变化时,Vue会根据【新数据】生成【新的虚拟DON】,随后Vue进行【新虚拟DOM】与【旧虚拟DOM】的差异比较,比较规则如下: 2.对比规则: (1). 旧虚拟DOM 中找到了与 新虚拟DOM 相同的key: .若虚拟DOM中内容没变,直接使

    2024年02月04日
    浏览(37)
  • 零基础入门Vue之影分身之术——列表渲染&渲染原理浅析

    从 条件渲染 那一篇,我学习到了如何用Vue对dom节点根据条件显示 但单单有条件还不够啊,有时候数据是一大坨一大坨的数据,如果Vue不提供咱要么使用“v-html” 要么就没办法实现 v-html又感觉太low了,Vue提供了另外的指令更好的实现,那便是:列表渲染 简单的列表渲染可以

    2024年02月19日
    浏览(32)
  • 教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for)

    v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值时才被渲染。 可以使用 v-else 为 v-if 添加一个“else 区块”。 v-else-if 提供的是相应于 v-if 的“else if 区块”。它可以连续多次重复使用。 可以用来按条件显示一个元素的指令是 v-show。 v-if、v-else、

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包