JAVA面试速记,面试速记之computed与watch的区别
computed:
show me the code
computed : {foo() {
if(this.a>0){ return this.a}
else { return this.b + this.c }
}
}
data() {a: 1,
b: 1,
c: 1,
}
计算属性会缓存上一次的计算结果,强调:是上一次而不是所有历史;
每次调用this.foo,是返回上一次的结果还是执行foo函数返回最新的结果?
是靠computed的响应式构造器内部的变量dirty控制,dirty为true就执行foo,返回最新的结果,否则就返回缓存的值,并且每次执行foo以后,都会把dirty还原为false
也就是说 dirty 控制了是否从缓存里读取值,那么什么时候dirty会被修改为true呢?
deps有修改或者新增(方便记忆,并不是新增会触发,而是新增时也会同步的触发dirty的修改)的时候;
computed的响应式构造器内部除了有dirty还有一个deps的数组,数组项是foo这个计算属性的依赖项,注意了,这个依赖不是代码表面上的this.a,this.b,this.c,而是在执行foo函数时,只有触发了某个值的getter,才会被添加到依赖数组,
deps默认为[],当第一次执行foo函数时,碰到if(this.a),触发了this.a的getters,就把this.a添加到deps,这时,依赖性里只有this.a,并且同步修改dirty为true,继续执行foo函数,返回最新的结果
伪代码表示就是
假设此时deps里只有this.a
执行this.b='2'
if(!deps.includes('this.b')){
return 上一次的值
}
执行this.a=2,
返回最新的值,
如果刚开始时 this.a=-1,依赖数组里有a,b,c,这个时候this.a=-2,新值和旧值一样,那么会返回上一次的值呢还是会重新计算? 如果返回上一次的值(foo中的console没有执行),就说明这个理论有问题,
JAVA面试速记,面试速记之computed与watch的区别相关推荐
- Java常见的面试算法题:实现两个线程交替打印1到100的数
Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...
- 2021年4月22日 阿里供应链Java开发实习面试(三面)(含总结)
title: 2021年4月22日 阿里供应链Java开发实习面试(三面) tags: 面经 2021年4月22日 阿里供应链Java开发实习面试(三面) 上来就手撕一道代码--输入一个数,然后顺时针 ...
- 2021年4月16日 阿里供应链Java研发实习面试(二面)
title: 2021年4月16日 阿里供应链Java研发实习面试(二面) tags: 面经 2021年4月16日 阿里供应链Java研发实习面试(二面)(70min) 自我介绍 介绍自己的研究生项目 ...
- 2021年4月12日 阿里供应链Java研发实习面试(一面)(含总结)
title: 2021年4月12日 阿里供应链Java研发实习面试(一面) tags: 面经 2021年4月12日 阿里供应链Java研发实习面试(一面) 自我介绍介绍项目你用哪个版本的Java呢?( ...
- 2021年3月16日 北京快手Java开发实习面试(海外增长方向)
title: 2021年3月16日 北京快手Java开发实习面试(海外增长方向) tags: 面经 2021年3月16日 北京快手Java开发实习面试(海外增长方向) 自我介绍你能讲一下你的项目吗?你 ...
- 2021年3月12日 北京格灵深瞳Java开发实习面试(一面)
title: 2021年3月12日 北京格灵深瞳Java开发实习面试 tags: 面经 2021年3月12日 北京格灵深瞳Java开发实习面试(一面) 首先上来问你问什么不做算法,转做开发呢?(因为我 ...
- 2018年4月份,阿里最新的java程序员面试题目
目录 技术一面(23问) 技术二面(3大块) 性能优化(21点) 项目实战(34块) JAVA方向技术考察点(15点) JAVA开发技术面试中可能问到的问题(17问) 阿里技术面试1 1.Java I ...
- Java程序员面试如何超常发挥?
面试时,你是不是也遇到过这样的情况,明明感觉自己表现发挥的很好,甚至进入到二面环节,到最后却没能拿不到入职offer,连自己"死在"哪块都不清楚.现实工作中这样的例子不在少数,究其 ...
- java程序员求职计划_2017年java程序员面试经验(500字)
1.数据结构 2.OO.按照他的一段描述建模 3.Java和C++在内存管理的不同之处. 4.JAVA的多线程机制. 5.反射机制的作用,以及在哪些方面使用了反射机制 6.网络 7.DesignPat ...
- 面试有没有看过spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天...
原标题:如何看Spring源码.Java每日六道面试分享,打卡第二天 想要深入的熟悉了解Spring源码,我觉得第一步就是要有一个能跑起来的极尽简单的框架,下面我就教大家搭建一个最简单的Spring框 ...
最新文章
- 寻找兄弟单词(2012.5.6百度实习)
- OpenGL中投影变换矩阵的反向推导
- 静态链表和动态链表 区别
- 二维数组排序 行与列分别升序_6个经典排序技巧,尤其是最后一个,绝对的个性化...
- c语言定义int 输出4386,大学C语言第五章课后习题参考程序
- Python 包管理
- wpf label字体为斜体_快来收下这份字体设计必备知识点
- Generate a Simulator Build command
- 既然Tengine比Nginx更强大,为什么Tengine没有取代Nginx呢?
- 62. 拆分初始化负载
- aliy 数据库连接池加密_Druid数据库连接池 实现数据库账号密码加密
- 代替人工批卷?基于目标检测模型的试卷自动批阅实践
- 清翔51单片机开发板及原理图-去年购买的
- Centos7.3下载和安装教程
- 如何判断某个类是否有某个注解?
- notes邮件正文显示不全_NOTES常见问题及解决方法[转]
- JAVA加密--JCA、JCE、CSP概念、体系架构与使用示例
- 织梦CMS鲜花商城类网站模板
- 嵌入式系统的概念,嵌入式系统的组成及特点,嵌入式系统的基本开发流程
- python打开本地浏览器_使用webdriver打开本地浏览器--python版
热门文章
- java,如何处理大批量数据插入
- mysql事务的管理方式_浅谈MySQL事务管理(基础)
- oracle迁移需要注意配置文件,xtts迁移实践
- Microsoft Blazor Platz.SqlForms开源——使用架构生成器设计和维护SQL Server数据库
- SQL的TRUNCATE和DELETE
- 什么是数据库触发器?
- spring boot注解_Spring-boot(二)注解
- ionic 禁止横屏处理
- Java垂直镜像,Java OpenCV实现图像镜像翻转效果
- label mpchart 饼图_Android MPChart—饼图-Go语言中文社区