首页IT科技vue里面的计算属性(Vue项目中如何使用computed计算属性)

vue里面的计算属性(Vue项目中如何使用computed计算属性)

时间2025-05-31 01:44:55分类IT科技浏览3946
导读:computed:...

computed:

1.基本使用

在computed中定义一个函数(看起来是一个函数           ,其实是一个属性)                 ,命名按照属性规范命名(一般为名词)            。

1.1 应用场景:

当数据A的逻辑很复杂时      ,把A这个数据写在计算属性里面

1.2 代码位置:

通过选项computed:{计算属性a:值}

1.3值 带有返回值return的函数

计算属性a和data中的数据用法一样                 。计算属性在computed中进行定义         ,无需再在data中定义                 ,在template中直接可进行使用         ,使用方式与data中定义的数据一样     。

<body> <div id=app> {{msg}} <hr> {{str}} </div> <script src=./vue.js></script> <script> var vm = new Vue({ el: #app, data: { msg: abc }, computed: { str: function () { return this.msg } }, methods: { } }) </script> </body>

2           、复杂操作-结合data中数据: 当计算属性b依赖了data中的数据a时      ,当a变化时                 ,b会自动变化         。这也是在开发中通常用到的情况                  。比如在购物的时候            ,下某一订单时   ,每选择一件商品(对应data中的数据a)                 ,合计费用(对应计算属性b)就会跟着变化        。

下方的例子即模拟上方的效果:

<body> <div id=app> <h2>总价格:{{totalPrice}}</h2> </div> <script src=./vue.js></script> <script> var vm = new Vue({ el: #app, data: { books: [ { id: 1000, name: Linux编程之美, price: 50 }, { id: 1001, name: Java疯狂讲义, price: 60 }, { id: 1002, name: 深入理解计算机原理, price: 80 }, { id: 1003, name: 操作系统, price: 30 }, { id: 1004, name: 数据结构导论, price: 60 }, ] }, computed: { totalPrice(){ let result=0; for(let i=0;i<this.books.length;i++){ result +=this.books[i].price; } return result } }, methods: { } }) </script> </body>

3                 、计算属性写法演变: 3.1计算属性的setter和getter

computed:{ //computed里面是大括号               ,本身就是对象      。 }

① 完整的计算属性写法:属性+方法

computed:{ //定义属性 totalPrice:{ //totalPrice 属性对应的是对象,不是字符串                  。对象就会有方法           。 //该属性对应的set方法和get方法 //计算属性一般是没有set方法的,是只读属性 //【此处set测试失败 没有出现预期效果】 set:function(newValue){ console.log(get方法调用啦, newValue); }, get:function(){ console.log(计算属性完整写法:计算啦); let result = 0; for (let i = 0; i < this.books.length; i++) { result += this.books[i].price; } return result } } }

② 计算属性一般只有get方法              ,是只读属性   。所以一般写法为:

computed: { totalPrice: function () { //后面对应的即为get方法                  。totalPrice就是一个属性                  ,调用时采用属性调用的方式   ,区别于方法调用() console.log(计算属性一般写法:计算啦); let result = 0; for (let i = 0; i < this.books.length; i++) { result += this.books[i].price; } return result } },

③ 语法糖—简化写法:

computed: { totalPrice() { console.log(计算属性语法糖写法:计算啦); let result = 0; for (let i = 0; i < this.books.length; i++) { result += this.books[i].price; } return result } },

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
简述提升关键词的方法(如何用拓展关键词的思路来提升您的SEO?)