vue2.0计算属性和侦听器

    xiaoxiao2022-07-13  167

    当需要将vue中data中两个属性值,进行计算得出另一个新值的时候,我们会考虑下面三种方法。

    文章目录

    计算属性方法侦听器

    计算属性

    通过computed进行属性计算,定义函数fullName通过差值表达式{{ fullName}} 获取数据项。通过计算属性,会有缓存,只有当 属性 firstName 和lastName 发生变化时,才会再次执行。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="./vue.js"></script> <title>计算属性 和 侦听器</title> </head> <body> <div id = "app"> {{fullName}} </div> <script> var vm = new Vue({ el: "#app", data:{ firstName: "Dell", lastName: "Lee" }, computed: { fullName: function() { return this.firstName + " " + this.lastName; } } }) </script> </body> </html>

    方法

    通过方法操作也能实现同样的功能,但是当其他属性发生变化时,fullName()方法也会发生变化。

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="./vue.js"></script> <title>计算属性 和 侦听器</title> </head> <body> <div id = "app"> {{fullName()}} </div> <script> var vm = new Vue({ el: "#app", data:{ firstName: "Dell", lastName: "Lee" }, methods:{ fullName: function() { return this.firstName + " " + this.lastName; } } }) </script> </body> </html>

    侦听器

    watch侦听器也可以实现同样的功能,代码量上看比计算属性要多。

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="./vue.js"></script> <title>计算属性 和 侦听器</title> </head> <body> <div id = "app"> {{fullName}} </div> <script> var vm = new Vue({ el: "#app", data:{ firstName: "Dell", lastName: "Lee", fullName: "Dell Lee" }, watch:{ firstName: function() { return this.fullName = this.firstName + " " + this.lastName; }, lastName: function() { return this.fullName = this.firstName + " " + this.lastName; } } }) </script> </body> </html>
    最新回复(0)