Vue中的computed,methods 和 watcher

  • Methods:对象属性的函数,使用方法对发生在DOM中的事件做出反应或者从组件中的其他位置调用。方法也可以对公共功能进行分组,如处理表单提交,构建可重用的类似发出Ajax请求等;
  • computed: 计算属性对于从现有源,来组合新的数据费城方便。与Methods相比,突出的优点是缓存了输出,即如果独立于计算属性的某些内容在页面上发生更改,并且重新呈现UI,则会返回缓存的结果,并且不会重新计算,避免了可能代价高昂的操作;

包含多个方法的对象
对状态属性进行计算返回一个新的数据, 供页面获取显示
一般情况下是相当于是一个只读的属性
利用set/get方法来实现属性数据的计算读取, 同时监视属性数据的变化
如何给对象定义get/set属性
在创建对象时指定: get name () {return xxx} / set name (value) {}
对象创建之后指定: Object.defineProperty(obj, age, {get(){}, set(value){}})

计算属性相比methods属性的优势:计算属性是基于它们的响应式依赖进行缓存的,即只要相应的响应式依赖发生改变时,才会重新求值,如果没有发生改变,计算属性会立即返回之前的计算结果,而不必再次执行函数。但是调用方法时,每当触发重新渲染时,不管响应式依赖有没有发生改变时,调用方法总会再次执行函数

  • watcher:对于希望响应已发生的更改(如属性或数据属性)执行操作的情况费城有用,或者想要执行异步或昂贵的操作以响应不断变化的数据时非常有用;

计算属性相比watchwe属性的优势**:watch方法是命令且重复的,而计算属性更简洁且高效
包含多个属性监视的对象
分为一般监视和深度监视
xxx: function(value){}
xxx : {
deep : true,
handler : fun(value)
}
另一种添加监视方式: vm.$watch(‘xxx’, function(value){})

猜你喜欢

转载自blog.csdn.net/m0_37686205/article/details/89377731