Vue基础-计算属性,方法,侦听器

    科技2022-09-07  111

    计算属性,方法,侦听器

    一、计算属性二、方法三、侦听器四、代码

    一、计算属性

    什么情况下要使用计算属性呢 如上图为了展示想要的数据,插值表达式写的太长了,为了把要展示的数据提前处理好让插值表达式变简洁,这个时候就要使用计算属性了 计算属性有个特点,它是内置缓存的(该计算属性依赖lastName和this.firstName两个变量,如果它依赖的变量没有发生变化,计算属性不会重新计算会一直用上次计算过的结果,这样会提升一些性能) 刷新页面和修改计算属性依赖得属性输出“计算了一次”,修改age并没有打印出“计算了一次”,

    二、方法

    还可以使用方法显示fullName,但是方法没有缓存机制,只要页面重新渲染都会调用方法

    三、侦听器

    侦听fullName依赖的所有变量,当依赖的变量其中一个改变就给fullName重新赋值 一开始刷新没有打印“计算了一次”是因为一开始在data里面定义了,他和计算属性一样有缓存机制,但是代码看起来没有计算属性简洁 总结:如果一个功能可以通过computer / methods / watch来实现,首选computer(代码简洁性能较高)

    四、代码

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>计算属性</title> <script src="./vue.js"></script> </head> <body> <!-- <div id="app">{{fullName()}}{{age}}</div> --> <div id="app">{{fullName}}{{age}}</div> <script> var vm = new Vue({ el: "#app", data: { firstName: "maomao", lastName: "liu", age: " 22", fullName: "liu maomao" }, /* 侦听器 */ watch: { lastName: function() { console.log("计算了一次"); this.fullName = this.lastName + " " + this.firstName; }, firstName: function() { console.log("计算了一次"); this.fullName = this.lastName + " " + this.firstName; } } /* 方法 */ /* methods: { fullName: function() { console.log("计算了一次"); return this.lastName + " " + this.firstName; } } */ /* computed计算属性 */ /* 计算属性里面的值fullName是通过计算的来的 */ /* computed: { fullName: function() { console.log("计算了一次"); return this.lastName + " " + this.firstName; } } */ }) </script> </body> </html>
    Processed: 0.013, SQL: 9