框架说白了也是一个产品,其大多是建立在某类语言上为了项目维护和开发的便捷,减少心智消耗的需求而产生一个产品。
比如使用前端框架vue开发项目代替原始的js原生代码,其在开发效率上明显提升,因为声明式的特点,无需关注过程,只要找到对应的声明代码,既可完成某种功能,这类经过改良的js使用方式,让整个开发过程更加流畅,并且在维护的时候代码的易读性,代码组织的模块化等设计方案,在维持其性能的同时,极致化的提升了维护的体验。
制作(框架)这类产品的核心技术手段之一就是编译,编译含有一部分翻译的意思,其形式也是把某段代码翻译成另外一种代码,比如前端框架vue或是react,都有自己的编译机制,如果初步使用过vue的话,你会发现,vue独特的模板写法,其实本质最终都是翻译成document.createElement()这种类型的原生dom写法。
当然,不论是v(vue)还是r(react)或是其他前端的框架都引入了虚拟dom,其目的是通过diff算法比较计算出需要更改的dom,但是不管什么形式,它的性能绝对比不过原生的dom写法(这里指的是原生的而不是innerHtml这样的模板写法,innerHtml方法内部是会把字符串解析成dom树,然后全量刷新,这样效率明显低于经过diff算法的虚拟dom),所以框架在性能上一定是比理想化的原生js代码差的,不过,如果你不是在浏览器js性能优化方面下过一定功夫的,那你苦思冥想消耗大量精力写出来的原生js性能未必比得过别人轻轻松松利用vue写出来的项目,更不必谈论维护性上了。
最后,总结下,这里介绍的就是一个基本方法:编译代码,写给初次开发框架的框架萌新,关于如何具体编译的理论和实例,我会在以后的日子在接下来的文章或者自己的个人网站上更新。