v-for循环使用技巧有哪些?这六点要知
Admin 2021-10-16 群英技术资讯 2044 次浏览
在 Vue.js 中,v-for 循环是非常使用的,它允许您在模板代码中编写 for 循环。因此,这篇文章就给大家分享一下v-for循环使用技巧,有需要的朋友可以参考。
在最基本的用法中,v-for 循环的用法如下。
<ul>
<li v-for="product in products">
{{ product.name }}
</li>
</ul>
但是,在本文中,我将介绍六种方法来使你的 v-for 代码更加精确,可预测和强大。
让我们开始吧。
1.始终在 v-for 循环中使用 key
首先,我们将讨论大多数 Vue 开发人员已经知道的常见最佳做法――在 v-for 循环中使用 :key。通过设置一个惟一的键属性,它可以确保组件以您期望的方式工作。
果我们不使用 key,Vue 将尝试使 DOM 尽可能高效,这可能意味着 v-for 元素可能会出现乱序或其他不可预测的行为。如果我们对每个元素都有唯一的键引用,那么我们就可以更好地准确地预测 DOM 将如何操作。
<ul>
<li v-for="product in products" :key="product._id">
{{ product.name }}
</li>
</ul>
2.在一个范围内循环
尽管大多数情况下,v-for 用于遍历数组或对象,但在某些情况下,我们肯定只希望循环执行一定次数。
例如,假设我们正在为在线商店创建一个分页系统,而我们只希望每页显示 10 个产品。使用一个变量来跟踪当前的页码,我们可以像这样处理分页。
<ul>
<li v-for="index in 10" :key="index">
{{ products[page * 10 + index] }}
</li>
</ul>
3.不要在循环中使用 v-if
一个超级常见的错误是使用 v-if 来过滤 v-for 循环的数据。尽管这看起来很直观,但它会导致一个巨大的性能问题――VueJS 优先考虑 v-for 而不是 v-if 指令。
这意味着您的组件将循环遍历每个元素,然后检查 v-if 条件以确定是否应渲染。因此,实际上,无论条件是什么,您都将遍历数组的每个项目。
不要这样:
// BAD CODE!
<ul>
<li
v-for="product in products"
:key="product._id"
v-if="product.price < 50"
>
{{ product.name }}
</li>
</ul>
4.使用计算属性或方法代替
为避免上述问题,我们应该在遍历模板中的数据之前对其进行过滤。有两种非常相似的方法:
使用计算属性
使用过滤方法
让我们快速地介绍一下这两种方法。
首先,我们只需要设置一个计算属性,为了获得与之前的 v-if 相同的功能,代码应如下所示。
<ul>
<li
v-for="products in productsUnderFifty"
:key="product._id"
>
{{ product.name }}
</li>
</ul>
// ...
<script>
export default {
data() {
return {
products: [],
};
},
computed: {
productsUnderFifty: function() {
return this.products.filter(
(product) => product.price < 50
);
},
},
};
</script>
下面的代码几乎相同,但是使用方法改变了我们访问模板中的值的方式,如果我们希望能够将变量传递给筛选器,那么方法是最好的选择。
<ul>
<li
v-for="products in productsUnderPrice(50)"
:key="product._id"
>
{{ product.name }}
</li>
</ul>
// ...
<script>
export default {
data() {
return {
products: [],
};
},
methods: {
productsUnderPrice(price) {
return this.products.filter(
(product) => product.price < price
);
},
},
};
</script>
5.在循环中访问项目的索引
除了遍历数组和访问每个元素之外,我们还可以跟踪每个项的索引。
为此,我们必须在项目后添加一个索引值,它非常简单,可用于分页,显示列表索引,显示排名等。
<ul>
<li
v-for="(products, index) in products"
:key="product._id"
>
Product #{{ index }}: {{ product.name }}
</li>
</ul>
6.遍历一个对象
到目前为止,我们只真正看过使用 v-for 遍历数组,但是我们可以轻松地遍历对象的键值对。
与访问元素的索引类似,我们必须向循环中添加另一个值。如果我们用一个参数遍历一个对象,我们将遍历所有的项。
如果我们添加另一个参数,我们将获得 items 和 key,如果添加第三个,我们还可以访问 v-for 循环的索引。
假设我们要遍历产品中的每个媒体资源。
<ul>
<li
v-for="(products, index) in products"
:key="product._id"
>
<span v-for="(item, key, index) in product" :key="key">
{{ item }}
</span>
</li>
</ul>
总结
关于v-for循环使用技巧就介绍到这,本文的六种v-for的使用有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多v-for循环使用技巧,大家可以关注其它的相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源,这篇文章主要介绍了JavaScript中Webpack的使用,需要的朋友可以参考下
这篇文章主要介绍了Vue3 table表格组件的使用,文章围绕table表格组件是如何使用的相关资料展开详细内容,需要的朋友可以参考一下
这篇文章主要介绍了浅谈vue.watch的触发条件是什么?具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
JS循环结构有几种?在javascript中循环结构有三种,分别是for循序、while循环和do while循环,具体是如何实现的呢?这篇我们就来看看JS中循环的实现,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起学习一下吧。
本文主要了解JavaScript中用宏详解的内容,一些朋友可能对于宏详解不是很了解,下文对JavaScript中用宏详解的使用有很详细的介绍,需要的朋友可以参考。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008