博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue入门笔记体系(四)computed和watch
阅读量:5946 次
发布时间:2019-06-19

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

computed

场景:当需要对data的数据进行显示计算时;

Original message: "{

{ message }}"

Computed reversed message: "{

{ reversedMessage }}"

var vm = new Vue({  el: '#example',  data: {    message: 'Hello'  },  computed: {    // 计算属性的 getter    reversedMessage: function () {      // `this` 指向 vm 实例      return this.message.split('').reverse().join('')    }  }})

计算属性缓存 vs 方法

计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变时才会重新求值。(不接受新的参数,只是基于data里面的数据进行计算)

方法是只要其他数据发生变化,触发重新渲染时,调用方法将总会再次执行函数,性能开销比较大。(可以接受参数)

watch

场景:监听到数据的变化,去指定响应的操作

var vm = new Vue({  data: {    a: 1,    b: 2,    c: 3,    d: 4,    e: {      f: {        g: 5      }    }  },  watch: {    a: function (val, oldVal) { //变化后的值,变化前的值      console.log('new: %s, old: %s', val, oldVal)    },    // 方法名    b: 'someMethod',    // 深度 watcher,可以观察objecct的所有数据变化,性能开销比较大;可以监听'e.a'这个属性进行监听    c: {      handler: function (val, oldVal) { /* ... */ },      deep: true    },    // 该回调将会在侦听开始之后被立即调用    d: {      handler: function (val, oldVal) { /* ... */ },      immediate: true    },    e: [      function handle1 (val, oldVal) { /* ... */ },      function handle2 (val, oldVal) { /* ... */ }    ],    // watch vm.e.f's value: {g: 5}    'e.f': function (val, oldVal) { /* ... */ }  }})vm.a = 2 // => new: 2, old: 1

转载地址:http://fhbxx.baihongyu.com/

你可能感兴趣的文章
牛顿法/递归法实现开方的函数功能
查看>>
手势模型和Angular Material的实现
查看>>
Java转换txt文件编码(GBK转UTF-8)
查看>>
Redis-使用记录
查看>>
APICloud 微信授权登录
查看>>
Java Web开发自学笔记一:环境(tomcat、jdk的选择和安装)
查看>>
Cakephp requestAction用法
查看>>
疯狂Activiti6.0连载(13)DMN的XML规范
查看>>
2.Linux上安装MySQL 5.5 rpm
查看>>
网站资源
查看>>
dubbo提供者出现不明外网ip注册的问题
查看>>
Mac版本UltraEdit取消自动更新检查
查看>>
HashMap之Hash碰撞冲突解决方案及未来改进
查看>>
OpenCV3 - 形态转换
查看>>
RTP
查看>>
C#调用java写的WebService
查看>>
常用对照表
查看>>
1046 Shortest Distance
查看>>
富文本编辑器UEditor提交时获取所有上传的文件
查看>>
CI3中添加自己的library,并且使用CI的特性
查看>>