博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue中computed,methods,watch用法上的异同
阅读量:5993 次
发布时间:2019-06-20

本文共 1478 字,大约阅读时间需要 4 分钟。

Computed属性实现本质

computed实际上是利用getter属性建立了计算属性与原属性之间的绑定关系,所以是没有任何副作用的。能通过computed解决的问题应该优先使用computed。 

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

// ...computed: {  fullName: {    // getter    get: function () {      return this.firstName + ' ' + this.lastName    },    // setter    set: function (newValue) {      var names = newValue.split(' ')      this.firstName = names[0]      this.lastName = names[names.length - 1]    }  }}// ...

计算属性VS方法

  1. 计算属性会缓存结果,只要原属性不发生改变,计算属性就不会重新计算;
  2. 但是每当出发重新渲染之后使用‘方法‘都会重新计算,无论原属性是否发生变化。
  3. 如果不需要缓存则使用方法,方法还有一个好处是可以传参,可以把方法执行过程中的临时变量的值传进方法体进行计算,而计算属性做不到,因为他的实现是通过getter属性而非一个方法。
  • {
    {addHandle(item)}}
methods: {    addHandle(item) {        return item++    }}

方法更加灵活的实现了对v-for中的item进行处理。

计算属性VS侦听属性

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    }  }})
var vm = new Vue({  el: '#demo',  data: {    firstName: 'Foo',    lastName: 'Bar'  },  computed: {    fullName: function () {      return this.firstName + ' ' + this.lastName    }  }})

计算属性和监听属性的区别,监听属性一次只能监听一个属性,无法一次对多个属性的变化做出响应,而计算属性可以做到。

侦听器的使用场景

watch用于处理较为复杂的场景,当需要在数据变化的时候进行异步或者开销比较大的操作的时候,这个方法是最有用的。

Ask a yes/no question:

{

{ answer }}

 

转载于:https://www.cnblogs.com/catbrother/p/9400963.html

你可能感兴趣的文章
设计模式---建造者模式Builder(创建型)
查看>>
SVG
查看>>
maven web配置发布路径 cargo自动部署项目到tomcat
查看>>
linxu select 返回值
查看>>
代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
Android开发(20)--RadioGroup的使用
查看>>
iphone开发之获取网卡的MAC地址和IP地址
查看>>
【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo...
查看>>
java中不常见的keyword:strictfp,transient
查看>>
INDEX--创建索引和删除索引时的SCH_M锁
查看>>
linux C(hello world)
查看>>
微信平台BAE
查看>>
Java程序编译和运行的过程
查看>>
数学图形之牟合方盖
查看>>
configSections
查看>>
Objective-C-类(static)方法、实例方法、overwrite(覆写)、属性(property)复习...
查看>>
PHP多次调用Mysql存储过程报错解决办法
查看>>
mysql的二级索引
查看>>
Cobar是提供关系型数据库(MySQL)分布式服务的中间件
查看>>
Oracle当前用户SQL
查看>>