Vue学习(四)-计算属性computed
发布日期:2021-05-18 11:06:20 浏览次数:118 分类:精选文章

本文共 2312 字,大约阅读时间需要 7 分钟。

计算属性实则:以Vue.js为例

读性之殇:传统的数据展示方式

在传统的Vue.js开发中,如果我们需要在一个壮丽的 <strong> 标签中展示多个数据项,常会采用的方式如下:

{{ songName }}
{{ artistName }}
{{ publishYear }}

或者:

歌曲名称: {{ songName }}
演唱者: {{ artistName }}
发布年份: {{ publishYear }}

这种写法固然方便,但其代码的可读性和维护性都相对较差,尤其当数据项越来越繁多时,代码会逐渐变得冗杂难以管理。

我们不禁会想,是否可以通过变量的方式来获取这组数据,同时又不需要像函数那样冗长地书写。基于此,计算属性的设计犹如一剂良药,可以帮助我们以更简洁的方式实 现才能。

语法洞察:计算属性的基础知识

在Vue.js实例中,计算属性的使用需要在 option 数组中预先定义,这些函数会被存储在一个 computed 的对象中。需要注意的是,在模板中的访问方式依然是使用 {{ }} 语法,计算属性方法之所以能够像普通属性一样方便访问,是得益于这个语法的发挥。

示例代码如下:

new Vue({
el: '#app',
data: {
books: [
{ id: 1, name: '《基督山伯爵》', price: 108 },
// 其他书籍...
]
},
computed: {
prices() {
let total = 0;
this.books.forEach(book => {
total += book.price;
});
return total;
}
}
});

运算符查错:变量与方法的妙用

真正令计算属性显得更加方便的是一些内置的运算符。例如,Array.prototype.forEach 在这里的运用,既能够遍历数组中的每一项,又能基于其修改或者累加某些属性的值。这一特性使得我们无需自行编写循环结构,就能实现多个数据项的汇总或计算。

作用显而易见的不仅是代码的简化,另一个重要的优点是计算方法的 缓存机制。即使某个计算属性被多次使用,只有在第一个使用时会进行实际计算以后的重复调用,都将直接从缓存中获取结果,这彻底避免了不必要的重复工作。

逻辑剖析:计算属性的 работа原理

从 JavaScript 的底层机制来看,定义的计算属性其实是对一个特殊的存储器属性。从 ES5 开始,存储器属性可以通过 gettersetter 函数来定义,在这种情况下,计算属性内部就使用了这一特性。例如:

const obj = {
name: '小说',
get pname() {
return this.name + '副本';
}
};
console.log(obj.pname); // 输出 "小说副本"

值得注意的是,如果仅仅定义了 getter 函数,属性将变成只读属性;而仅仅定义了 setter 则属性则是只写属性。如果既定义了 getter 又定义了 setter,属性则既可读又可写。

casing-by-cases: 价格汇总的实战演练

让我们实战看看如何运用计算属性实现价格总数的动态计算。题目条件如下:

基于给定的书籍列表,按照以下方式计算总价格:

var app = new Vue({
el: '#app',
data: {
books: [
{ id: 1, name: '《基督山伯爵》', price: 108 },
{ id: 2, name: '《嫌疑犯X的现身》', price: 53 },
{ id: 3, name: '《穆斯林的葬礼》', price: 41 },
{ id: 4, name: '《兄弟》', price: 22 },
]
},
computed: {
prices() {
let total = 0;
this.books.forEach(book => {
total += book.price;
});
return total;
}
}
});

在这一案例中,prices 计算属性会收集所有书籍的价格,并累加求和,返回总数值。这种方法的优势在于,不论总价格需要用到多少次,只要缓存有效,仅需要计算一次即可满足需求。

通过对以上实例的观察,我们能够清晰地反映出计算属性在拥有高效性和可维护性的同时,能够显著提升代码的美观性。这种方式也更方便读者理解和修改代码的逻辑,尤其是在需要反复调试或扩展功能时。

总结语

计算属性是 Vue.js 开发的重要特性之一,它使开发者能够在保持可读性的同时,简洁地定义复杂的数据逻辑。通过将常规的循环逻辑抽象为计算属性,不仅降低了代码的复杂度,更重要的是有效提升了应用程序的性能表现。因此,在今后的 Vue.js 开发中,争取更多地运用计算属性特性,可以令应用更加升级,用户体验更加流畅。

更多案例

如果需要探究更多与计算属性相关的实际案例,建议参考 Vue.js官方文档或其他技术社区的相关资源。例如,περα}{$priceSum 的计算方法可以扩展到不同数据的处理,甚至可以实现动态的条件计算。

上一篇:Vue学习(五)-v-on的使用
下一篇:Vue学习(三)-v-bind指令学习

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月26日 00时14分31秒