Vue计算属性和侦听器

计算属性

模板内的表达式非常便利,但是在模板中放入太多的逻辑会让模板过重切难以维护。对于任何复杂逻辑都应该使用计算属性。


<p>{{ reverseMsg }}</>

var vm = new Vue({
    el: ‘#example‘,
    data: {
        message: ‘hello‘
    },
    computed: {
        reverseMsg: function() {
            return this.message
        }
    }
})

这里声明一个计算属性reverseMsg。我们提供的函数将作用属性vm.reverseMsg的getter函数。

我们可以在表达式中调用方法来达到和计算属性相同的作用。但是计算属性是基于它们的依赖缓存的。只有在相关依赖改变的时候才会重新求值。这就意味着只要message没有改变,多次访问reverseMsg还是返回同样的值,而不是执行函数。


computed: {
    now: function() {
        return Date.now()
    }
}

如上是不会发生改变的,应该不是响应式依赖。

  1. 计算属性的setter

计算属性默认只有getter,不过在需要时也可以提供一个setter。


computed: {
    fullName: {
        get: function() {},
        set: function() {

        }
    }
}

侦听器

虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。这就是为什么 Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

来源:https://segmentfault.com/a/1190000016840663

原文地址:https://www.cnblogs.com/qixidi/p/10126283.html

时间: 2024-11-05 19:37:40

Vue计算属性和侦听器的相关文章

1.3 Vue中的计算属性和侦听器

Vue中的计算属性和侦听器 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Vue中的计算属性和侦听器</title> <!--1 引入Vue库--> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

Vue.js 实战教程 V2.x(7)计算属性和侦听器

7计算属性和侦听器 7.1计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的. 在模板中放入太多的逻辑会让模板过重且难以维护. 所以,对于任何复杂逻辑,你都应当使用计算属性. 基础例子 <div id="example"> <p>Original message: "{{ message }}"</p> <p>Computed reversed message: "{{ reversedMe

VueJs(7)---计算属性和侦听器

计算属性和侦听器 一. 概述 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> {{ message.split('').reverse().join('') }} </div> 在这个地方,模板不再是简单的声明式逻辑.你必须看一段时间才能意识到,这里是想要显示变量 message 的翻转字符串.当你想要在模板中多次引用此处的翻转字符串时,就会更加难以

Vue.js学习日记(3)——计算属性和侦听器

1.计算属性 模板不仅可以是简单的声明式逻辑,也可以是较为复杂的表达式. <div id="element"> <!--简单声明--> {{message}} <!--复杂表达式,表示变量message的翻转字符串--> {{message.split('').reverse().join('')}} </id> 如果表达式过于复杂,将不利于直接理解.当需要在模板中多次引用message的翻转字符串时,操作也会变得繁琐. 所以,对于任何复

5.计算属性和侦听器

计算属性 所以,对于任何复杂逻辑,你都应当使用计算属性.  vm.reversedMessage 的值始终取决于 vm.message 的值. 计算属性缓存 vs 方法 你可能已经注意到我们可以通过在表达式中调用方法来达到同样的效果: 不同的是计算属性是基于它们的响应式依赖进行缓存的. 只在相关响应式依赖发生改变时它们才会重新求值.这就意味着只要 message 还没有发生改变, 多次访问 reversedMessage计算属性会立即返回之前的计算结果,而不必再次执行函数. 相比之下,每当触发重

VUE 计算属性 vs 侦听属性

计算属性 vs 侦听属性 Vue 提供了一种更通用的方式来观察和响应 Vue 实例上的数据变动:侦听属性.当你有一些数据需要随着其它数据变动而变动时,你很容易滥用 watch——特别是如果你之前使用过 AngularJS.然而,通常更好的做法是使用计算属性而不是命令式的 watch 回调.细想一下这个例子: <div id="demo">{{ fullName }}</div> var vm = new Vue({ el: '#demo', data: { fi

vue之计算属性和侦听器

一.使用计算属性 模板内的表达式是非常便利的,但适用于简单运算.在模板中放入太多的逻辑会让模板过重且难以维护. <script src="vue.js"></script> <div id="app"> <p>{{ msg.split("").reverse().join("") }}</p> </div> <script> var vm= n

计算属性和侦听器

一.计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split('').reverse().join('') }} </div> 在这个地方,模板不再是简单的声明式逻辑.你必须看一段时间才能意识到,这里是想要显示变量 message 的翻转字符串.当你想要在模板中多次引用此处的翻转字符串时,就会更加难以处理. 所以,对于任何复杂逻辑,你都应当使用计算属性. <div

vue - 计算属性、监听、自定义指令

1.计算属性 <div id="app"> <input type="text" v-model="x"> <input type="text" v-model="y"> {{get}} </div> <script> var app=new Vue({ el:"#app", data:{ x:"", y:&