计算属性computed是基于响应式进行缓存,所以在执行的时候效率高,且只执行一次,从缓存读取,除非data里面的数据有更改才重新调用。注意:计算属性里面必须要ruturn,否则无法拿到结果。计算属性本质是一个函数,当做属性来使用,调用时不要加()

  <div id="app"><div>{{reverseString}}</div><div>{{reverseString}}</div><div>{{reverseMessage()}}</div><div>{{reverseMessage()}}</div></div><script type="text/javascript" src="js/vue.js"></script><script type="text/javascript">/*计算属性与方法的区别:计算属性是基于依赖进行缓存的,而方法不缓存*/var vm = new Vue({el: '#app',data: {msg: 'Nihao',num: 100},methods: {reverseMessage: function(){console.log('methods')return this.msg.split('').reverse().join('');}},computed: {reverseString: function(){console.log('computed')// return this.msg.split('').reverse().join('');var total = 0;for(var i=0;i<=this.num;i++){total += i;}return total;}}});</script>

侦听器 watch

  • 使用watch来响应数据的变化
  • 一般用于异步或者开销较大的操作(定时器,ajax,dom中on事件)
  • watch 中的属性 一定是data 中 已经存在的数据
  • 当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,只有data中的数据才能够监听到变化,此时就需要deep属性对对象进行深度监听
 <div id="app"><input type="text" v-model='firstName'><input type="text" v-model='lastName'><input type="text" v-model="msg"><div>{{fullName}}</div></div><script type="text/javascript" src="js/vue.js"></script><script type="text/javascript">/*侦听器 */var vm = new Vue({el: '#app',data: {firstName: 'lihan',lastName: 'Green',fullName: 'Jim Green',msg:'hello',obj:{ a:1,b:2 }},method:{getList(){...}},computed: {/*用计算属性也能实现*//* fullName: function(){return this.firstName + ' ' + this.lastName;}*/},watch: {firstName: function(val) {this.fullName = val + ' ' + this.lastName;},lastName: function(val) {this.fullName = this.firstName + ' ' + val;},//监听obj.a的变化// 'obj.a':(n,o){ }  //写法一'obj.a':{         //写法二//handler是一个回调函数//handler:'getList'  //上面定义的方法handler(n,o) { },//deep: true,//深度监听对象immediate: true//immediate如果为true 代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法}}});</script>

计算属性 和 方法 和 侦听器的区别和联系

  1. 一般是使用计算属性, 因为他有缓存
  2. methods一般是处理业务使用的, 只要手动调用了这个方法就会执行, 但是computed计算属性,因为他有缓存
  3. watch,是对我们data上面的一些数据进行 观察和响应; 一般的时候使用 计算属性替代watch;因为滥用watch的话,会影响性能。(最开始的Angularjs1.x 就有这个问题)。 但是watch有它自己的使用场景,别人不能替代。 当需要在数据变化时执行异步或开销较大的操作时 (js里面学过的异步任务:定时器 + ajax + dom事件)

vue计算属性computed和侦听属性watch的用法和区别相关推荐

  1. 【15】Vue:02-Vue表单基本操作、表单修饰符、自定义指令、计算属性computed、侦听器watch、过滤器、生命周期、数组变异方法、替换数组、动态数组响应数据、图书列表案例、TODOS案例

    文章目录 day02 Vue常用特性 表单基本操作 表单修饰符 自定义指令 Vue.directive 注册全局指令 Vue.directive 注册全局指令 带参数 自定义指令局部指令 计算属性 c ...

  2. vue计算属性computed与监听属性watch的基本使用

    目录 Vue.js 计算属性 Vue.js 监听属性 Vue.js 计算属性 计算属性关键词: computed. 计算属性在处理一些复杂逻辑时是很有用的. 反转字符串的示例 <!DOCTYPE ...

  3. Vue的计算属性computed和监听属性watch

    Vue的计算属性computed 定义 通过已有属性计算生成一个新的组合属性. 原理 底层借助了Object.defineproperty方法提供的getter和setter来实现. 性质 计算属性的 ...

  4. oclick vue 传参 函数_详解Vue计算属性和侦听属性

    关注[搜狐技术产品]公众号,第一时间获取技术干货 作者介绍: 本期特邀作者:浪里行舟 Github博客2600 star作者,专注于前端领域.个人公众号:「前端工匠」,致力于打造适合初中级工程师能够快 ...

  5. Vue的计算属性、侦听属性与过滤器解析

    文章目录 知识点 计算属性 计算属性的基本使用 计算属性的 setter 和 getter 侦听属性 计算属性与侦听属性对比 过滤器 过滤器使用方法 过滤器应用场景 综合小练习 知识点 计算属性 计算 ...

  6. 面试题!vue中的计算属性、方法、侦听属性

    1.计算属性 详细的内容可跳转至vue 计算属性 可以使用计算属性来代替在表达式中进行的复杂运算,以便于能够更方便的维护与复用逻辑. 计算属性是在选项对象中使用 computed 字段来定义. 特点: ...

  7. Vue属性篇_侦听器watch

    作用:侦听属性,响应数据(data&computed)的变化,当数据变化时,会立即执行对应函数,其属性值可以为函数.字符串.对象和数组. 1.属性值类型 (1)函数类型 函数类型中,被侦听的数 ...

  8. Vue3官网-高级指南(十七)响应式计算`computed`和侦听`watchEffect`(onTrack、onTrigger、onInvalidate、副作用的刷新时机、`watch` 、pre)

    Vue3官网-高级指南(十七)响应式计算computed和侦听watchEffect(onTrack.onTrigger.onInvalidate.副作用的刷新时机.watch .pre).渲染机制和 ...

  9. vue学习篇--02内置指令 计算属性 侦听属性

    文章目录 18个指令 v-text v-html: v-show: v-if: v-for: 可以遍历数组 对象 数字 字符串 v-bind: 解析属性:title src href type alt ...

最新文章

  1. 计算机视觉方向简介 | 视觉惯性里程计(VIO)
  2. JAVA学习绘图颜色及其笔画属性设置字体显示文字
  3. 【小白学PyTorch】扩展之Tensorflow2.0 | 20 TF2的eager模式与求导
  4. Google推出Web开发利器:App Engine
  5. python训练手势分类器_机器学习零基础?手把手教你用TensorFlow搭建图像分类器|干货...
  6. 点到线段的距离_直线垂直,垂线的性质,点到直线的距离
  7. 单基因gsea_这篇3+分核心基因筛选,点个在看,我们复现这篇文章!
  8. python idle背景_Python IDLE背景主题
  9. H264所采用的指数格伦布熵编码算法原理及应用
  10. SSH 默认端口配置
  11. 取之盈--别人轻松月薪过万,都是怎样高效学习的?
  12. matlab Fsw,个人主页
  13. cat3 utp是不是网线_五类100对屏蔽双绞线UTPCAT3
  14. Dichotomy专栏:Leetcode:#33 搜索旋转排序数组
  15. Win10调整各窗口的任务栏位置
  16. 点到点轨迹规划——三次曲线,五次曲线,梯形曲线,S曲线
  17. Azure Key Vault 简介
  18. Centos 7.6 服务器安装oracle 11gR2(参考官方文档)
  19. 【机器学习】笔记1:回归与误差分析
  20. 推荐一些硬核的公众号

热门文章

  1. 应用(接口)被刷的解决方案(接口防止机器刷数据的处理方案)
  2. 如何做好一场技术演讲-总结:1、演讲之前需要做好哪些准备?
  3. 使用原生js实现吸顶功能
  4. 三种人永远不适合做老板
  5. DOM编程-获取文本框的value
  6. html绝对定位居中
  7. 店铺人群标签不精准怎么办,哪些因素导致人群标签不精准的,如何纠正?
  8. Bootstrap_响应式导航栏,汉堡按钮,遮盖
  9. 方舟生存进化手机版上线,安卓模拟器电脑版攻略提前看:完美匹配手游服
  10. Idea编译无法输出profile资源文件问题