computed 、methods 和 watch

computed 和 methods
  在new Vue的配置参数中的computed和methods均可以处理大量的逻辑代码,可是何时用哪一个属性,要好好区分一下才能作到正确的运用vue。
computed称为计算属性,顾名思义,计算就要返回一个计算的结果,因此,当咱们要处理大量的逻辑,可是最后要取得最后的结果的时候能够用computed;
简单示例:
要求:
<input type="text v-model="num1"><input type="text v-model="num2">
如今要返回num1和num2的和;vue

<script>
    new Vue({ el:"#box", data:{ num1:0, num2:0 } computed:{ result:function(){ return this.num1 + this.num2 // 计算属性必须有一个返回值
 } } }) </script>

methods:是方法的意思,在js中,咱们把一些函数叫作方法,通常状况下,要触发这个方法就要执行,要执行就要有一个源来触发,因此就须要一个事件源。
这是和computed的一点不一样之处;
methods的示例:
缓存

<\button @click="do()">点击弹出<\/button>
<script>
    new Vue({ el:"#box", data:{ num1:0, num2:0 } methods:{ do:function(){ alert('ok') //这里根据状况,能够返回有返回值也能够没有返回值。
 } } }) </script>


对比computed 和 methods:
computed计算的结果若是不发生改变就不会触发result这个函数。而methods中通常都是定义的须要事件触发的一些函数。每次只要触发事件,
就会执行对应的方法。若是把computed中的方法写到method中会浪费性能。
computed必须返回一个值页面绑定的才能取得值,而methods中能够只执行逻辑代码,能够有返回值,也能够没有ide

computer 和 watch函数

//这是computer的
var 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
    }
  }
})
//这是watch的说法

var var vm = new Vue({
  el: '#demo',
  data: {
    firstName: 'Foo',
    lastName: 'Bar'
  },
  computed: {
    fullName: function () {
      return this.firstName + ' ' + this.lastName
    }
  }
})

总结computer和watch:

计算属性是计算属性,观察是观察。

计算属性顾名思义就是经过其余变量计算得来的另外一个属性,fullName在它所依赖firstName,lastName这两个变量变化时从新计算本身的值。

另外,计算属性具备缓存。计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变时才会从新求值。这就意味着只要 lastName和firstName都没有发生改变,屡次访问 fullName计算属性会当即返回以前的计算结果,而没必要再次执行函数。

而观察watch是观察一个特定的值,当该值变化时执行特定的函数。例如分页组件中,咱们能够检测页码执行获取数据的函数。

能够再详细的查看一下文档:https://cn.vuejs.org/v2/guide...性能

相关文章
相关标签/搜索