Vue-14-列表渲染v-for

简介: Vue-14-列表渲染v-for

前言


在前面的章节中,我们已经了解了关于 Vue 的条件渲染,今天我们就一起来看看 Vue 的列表渲染,即 For 循环。


例子


v-for


Python 中的 for 循环一样,Vue 的列表渲染也遵循 item in items 的规范。itemitems 中的元素别名。


代码


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <title>Vfor</title>
</head>
<body>
    <ol id="app">
        <li v-for="item in items" :key="item.title">
            {{ item.title }}
        </li>
    </ol>
    <script>
        app = new Vue({
            el: '#app',
            data:{
                "items":[
                    {title: 'phyger'},
                    {title: 'fly'}
                ]
                }
        })
    </script>
</body>
</html>
复制代码


效果


网络异常,图片无法展示
|


v-for 中使用对象


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <title>Vfor</title>
</head>
<body>
    <div id="app">
    <ol>
        <li v-for="item in items" :key="item.title">
            {{ item.title }}
        </li>
    </ol>
    <h1>Authors Info</h1>
    <ul>
        <li v-for="value,key,index in objs">
            {{ index }} : {{ key }} : {{ value }}
        </li>
    </ul>
    </div>
    <script>
        app = new Vue({
            el: '#app',
            data:{
                "items":[
                    {title: 'phyger'},
                    {title: 'fly'}
                ],
                "objs": {
                    name: "phyger",
                    home: "xian",
                    age: 18
                }
                }
        })
    </script>
</body>
</html>
复制代码


在对对象进行循环遍历的时候,valuekeyindx 的顺序是固定的,即第一个参数获对象的值,最后一个参数获取索引。


效果


网络异常,图片无法展示
|


v-for 中使用 v-if


假如我们要遍历一个任务列表,但是只显示已完成的任务,此时我们就可以使用 v-for+v-if 实现。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <title>Vfor</title>
</head>
<body>
    <div id="app">
    <ol>
        <li v-for="item in items" :key="item.title">
            {{ item.title }}
        </li>
    </ol>
    <h1>Authors Info</h1>
    <ul>
        <li v-for="value,key,index in objs">
            {{ index }} : {{ key }} : {{ value }}
        </li>
    </ul>
    <h1>v-if in v-for</h1>
    <ol>
        <li v-for="todo in todos" v-if="todo.status==1">
            {{ todo.name }}
        </li>
    </ol>
    </div>
    <script>
        app = new Vue({
            el: '#app',
            data:{
                "items":[
                    {title: 'phyger'},
                    {title: 'fly'}
                ],
                "objs": {
                    age: 18,
                    name: "phyger",
                    home: "xian"
                },
                todos: [
                    {name: 'eat',status: 1},
                    {name: 'work',status: 1},
                    {name: 'sleep',status: 0}
                ]
                }
        })
    </script>
</body>
</html>
复制代码


v-if in v-for 场景中,v-for 的优先级要高于 v-if,所以 v-if 会分别在每个 for 循环中重复运行。


效果


只显示 status=1 的任务。


网络异常,图片无法展示
|


以上就是今天的全部内容了,感谢您的阅读,我们下节再会。

相关文章
|
3月前
|
JavaScript
vue异步渲染
vue异步渲染
|
1月前
|
监控 JavaScript 前端开发
Vue 异步渲染
【10月更文挑战第23天】Vue 异步渲染是提高应用性能和用户体验的重要手段。通过理解异步渲染的原理和优化策略,我们可以更好地利用 Vue 的优势,开发出高效、流畅的前端应用。同时,在实际开发中,要注意数据一致性、性能监控和调试等问题,确保应用的稳定性和可靠性。
|
2月前
|
JavaScript API
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
62 1
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
|
3月前
|
JavaScript 前端开发
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
|
3月前
|
JavaScript 前端开发 API
Vue学习笔记7:使用v-for指令渲染列表
Vue学习笔记7:使用v-for指令渲染列表
|
3月前
|
人工智能 JavaScript 索引
Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】
这篇文章讨论了在Vue中进行列表渲染时遇到的“Duplicate keys detected”错误。这个错误通常发生在使用 `v-for` 指令渲染列表时,如果没有为每个循环项指定一个唯一的 `key` 属性,或者指定的 `key` 属性值重复了。文章提供了导致错误的原始代码示例,并给出了修正后的代码,通过在 `key` 绑定中加入索引确保 `key` 的唯一性。此外,文章还解释了为什么需要唯一 `key` 以及如何解决这个问题。
Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】
|
4月前
|
JavaScript
Vue3描述列表(Descriptions)
该组件库包含 `Descriptions` 和 `DescriptionsItem` 两种组件,需配合使用。`Descriptions` 用于构建描述列表,提供标题、操作区、边框、垂直布局等配置;`DescriptionsItem` 作为列表项,可自定义标签和内容样式。支持响应式布局,并集成了多个实用工具函数,如节流、事件监听等。可通过属性灵活调整列表样式与布局。
Vue3描述列表(Descriptions)
|
3月前
|
JavaScript 前端开发 UED
组件库实战 | 用vue3+ts实现全局Header和列表数据渲染ColumnList
该文章详细介绍了如何使用Vue3结合TypeScript来开发全局Header组件和列表数据渲染组件ColumnList,并提供了从设计到实现的完整步骤指导。
|
4月前
|
JavaScript 算法 前端开发
"揭秘Vue.js的高效渲染秘诀:深度解析Diff算法如何让前端开发快人一步"
【8月更文挑战第20天】Vue.js是一款备受欢迎的前端框架,以其声明式的响应式数据绑定和组件化开发著称。在Vue中,Diff算法是核心之一,它高效计算虚拟DOM更新时所需的最小实际DOM变更,确保界面快速准确更新。算法通过比较新旧虚拟DOM树的同层级节点,递归检查子节点,并利用`key`属性优化列表更新。虽然存在局限性,如难以处理跨层级节点移动,但Diff算法仍是Vue高效更新机制的关键,帮助开发者构建高性能Web应用。
80 1
|
4月前
|
JavaScript API
Vue学习之--------列表排序(ffilter、sort、indexOf方法的使用)、Vue检测数据变化的原理(2022/7/15)
这篇博客文章讲解了Vue中列表排序的方法,使用`filter`、`sort`和`indexOf`等数组方法进行数据的过滤和排序,并探讨了Vue检测数据变化的原理,包括Vue如何通过setter和数组方法来实现数据的响应式更新。
Vue学习之--------列表排序(ffilter、sort、indexOf方法的使用)、Vue检测数据变化的原理(2022/7/15)