最近是一段时间工作实在是太忙了,今天刚好周末,和大家分享一下我在实际项目中遇到的一些坑吧,供大家参考。
Object.freeze的痛
我前面基于vue源码分析的文章记录基于vue在我的真实项目中的性能优化中有提到,在vue的项目开发中,可以大量使用Object.freeze方法将一些数据进行冻结,可以大大提高页面性能,大大减少对内存的消耗。
首先请允许我来简单介绍一下我的项目,它是一个基于Electron+vue桌面应用程序。可能有些人不知道electron是什么?通俗点介绍它就是允许前端开发者将Node技术传统的web技术整合到一起混合开发的平台,一套代码可以打包在多个平台上(我们现在是mac和windows)运行的桌面应用程序。
举个例子:我们可以基于electron可以实现点击一个按钮,去下载一张图片,写入一个日志到本地的磁盘中。也就是说,纯web技术可以实现对Node相关api的调用。
好了,废话少说,那么这个Object.freeze既然可以大大提高页面性能,那么他又会有什么坑呢?前面分析过,Object.freeze原理是将一个对象的configurable属性改成了false。使得这个对象的内部不能被修改,从而在vue中无须添加get和set方法,从而提高性能