vue的 计算属性(computed)、methods、watched三者区别
来源:互联网 发布:删除sql字段数据 编辑:程序博客网 时间:2024/06/05 17:24
原文来自:http://blog.csdn.net/seven_an/article/details/73204679
计算属性 :和普通属性一样是在模板中绑定计算属性的,当data中对应数据发生改变时,计算属性的值也会发生改变。
Methods:methods是方法,只要调用它,函数就会执行。
相同:两者达到的效果是同样的。
不同:计算属性是基于它们的依赖进行缓存的,只有相关依赖会发生改变时才会重新求职。只要相关依赖未改变,只会返回之前的结果,不再执行函数。
computed属性 VS watched 属性
watched属性:代码更易于理解,它指定监测的值是谁,然后相应的改变其他的值。
var vm = new Vue({el: '#demo',data: {firstName: 'Foo',lastName: 'Bar',fullName: 'Foo Bar'},watch: {firstName: function (val) {this.fullName = val + ' ' + this.lastName},lastName: function (val) {this.fullName = this.firstName + ' ' + val}}})
computed属性:代码更简单。
var vm = new Vue({el: '#demo',data: {firstName: 'Foo',lastName: 'Bar'},computed: {fullName: function () {return this.firstName + ' ' + this.lastName}}})补充摘抄来自官方文档:计算属性的缓存 vs method 方法
你可能已经注意到我们可以通过调用表达式中的 method 来达到同样的效果:
<p>Reversed message: "{{ reversedMessage() }}"</p>// in componentmethods: {reversedMessage: function () {return this.message.split('').reverse().join('')}}我们可以将同一函数定义为一个 method 而不是一个计算属性。对于最终的结果,两种方式确实是相同的。然而,不同的是计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变时才会重新求值。这就意味着只要
message
还没有发生改变,多次访问reversedMessage
计算属性会立即返回之前的计算结果,而不必再次执行函数。这也同样意味着下面的计算属性将不再更新,因为
Date.now()
不是响应式依赖:computed: {now: function () {return Date.now()}}相比之下,每当触发重新渲染时,method 调用方式将总是再次执行函数。
我们为什么需要缓存?假设我们有一个性能开销比较大的的计算属性 A,它需要遍历一个极大的数组和做大量的计算。然后我们可能有其他的计算属性依赖于 A 。如果没有缓存,我们将不可避免的多次执行 A 的 getter!如果你不希望有缓存,请用 method 替代。
- Vue计算属性(computed)、methods、watched三者区别
- vue的 计算属性(computed)、methods、watched三者区别
- vue的 计算属性(computed)、methods、watched三者区别
- vue的计算属性(computed)、methods、watched三者区别
- vue.js 计算属性及计算属性(computed)、methods、watched三者区别
- vue计算属性computed和methods的区别
- vue 计算属性computed和观察watch 和方法methods
- vue-计算属性computed
- Vue:计算属性computed
- vue计算属性computed的使用
- Vue computed计算属性的妙用
- vue的computed计算属性学习
- Computed-属性-vs-Watched-属性
- vue.js2.0关于computed、methods、watch、created的区别
- VUE-计算属性 vs Watched Property
- Vue.js computed vs Methods区别
- Vue之计算属性Computed
- Vue.js的computed和methods#
- 错误,求大佬帮助
- Python常见用法
- C++数据结构之栈操作
- 日记—9.10
- 面试-框架-hibernate
- vue的 计算属性(computed)、methods、watched三者区别
- xlistview清单文件
- springmvc和struts2的区别
- 揭秘MySQL事务与锁的联系
- zookeeper学习之一
- leetcode 94. Binary Tree Inorder Traversal 二叉树中序递归遍历
- 深入理解JVM 系列JVM运行机制 JVM内存模(volatile,指令重排)
- spring 代码
- 浅谈必要条件的应用