前端界的一些谬误总结

1,022 阅读2分钟

1,问起angular1的更新机制《哦》 脏检查,那脏检查为什么慢?跟vue react对比起来,后边的两个怎么会优于angular1?

    答:背景:很多人都只知道脏检查,但是他到底是怎么脏检查的可能一无所知?包括为什么要$scope.$apply(),估计很多也是不知道。道听途书就哇啦哇啦性能。

          脏检查这种方式是没有问题的,react的虚拟dom,他的更新策略 diff算法,这个算不算是脏检查?注意是算法,是大牛们天天闲的没事千锤百炼的算法,而不是我们写的代码。那为什么angular1就慢,就不受你们待见。我面试那么多,上来就virtual dom 单向数据流,搞得我跟批改作业一样,上来都这么说。

          原因是什么?在于angular1的时代,<script type="module"> 这种玩意还没有出来。也就是js没有模块化。他的检查是整个页面来检查,是$rootScope开始,随后会访问到所有的children scope中的watchers。对比一下,Angular6+,目前7也出来了,他现在还是脏检查,谷歌的大佬没有我们聪明吗?他难道不知道什么数据追踪,虚拟dom?改进在哪呢?他现在也是模块化,一个组件,一个class,一个视图,他就在一个组件(JS对象下)展开检查。改进还有,就是zonejs,自己模拟了一个响应事件 请求的环境,避免了我们手动触发循环。

react的diff也是一个class里展开,你们喜欢说那些smart component和dumb component,记住component这个关键词就行了。这是个独立的module,不是以前那种一个脚步整个页面来运行的东东了。

还有vue,他算不算脏检查呢?证据:他的列表要绑定id,来进行对比优化。要说他是精确追踪每个属性的变化。我感觉改个名字叫:遍历检查 是不是会好点?vue也是维护一个队列来收集依赖然后出发update().跟angular还是很像的机制。

2.如果有人上来问你 垂直居中的n种方法。窃以为这种公司万万不可去。特别是那种 你写了一种方法吗 他不停问 还有泥 还有泥。。又尼玛个大🍌 现在是清朝吗 你是孔乙己吗 你知道回子有17种写法吗