大家好,今天小编关注到一个比较有意思的话题,就是关于JavaScript打包工具的问题,于是小编就整理了2个相关介绍JavaScript打包工具的解答,让我们一起看看吧。
d3js与three js区别?
1、D3.js是一个数据可视化的库,看看他们的DEMO就可以知道,技术基础是SVG。兼容性是IE9+。
2、webgl是HTML5中提出的新技术,是一种3D绘图标准,这种绘图技术标准允许把J***aScript和OpenGL ES 2.0结合在一起,关于它的教程可以看看hiwebgl。目前兼容性堪忧3、three.js是以webgl为基础的库,封装了一些3D渲染需求中重要的工具方法与渲染循环。它的教程同样可以在hiwebgl里面找到。4、three.js之于webgl,类似于windows版本的虚幻引擎之于D3D。当然,虚幻引擎的能力范围比three.js大得多。d3.js跟上面两者没有关系。
前端开发如何包装可重用的J***aScript代码?
谢谢邀请!关于前端如何包装自己的代码。其本质说的就是一个组件化的问题,目的就是最大程度上提升开发效率。下面我就前端如何更高效的进行组件化开发,谈一下前端如何包装自己的共享代码。项目开发方式分组件化和非组件化。先讲讲组件化。毕竟主流
一、组件化
组件化开发分同一个业务内和不同业务之间如何包装共享代码问题。1. 同一个业务内:话不多说,先来看一张图。如上图所示:其实任何一个项目都是由一个或者两个或者N个页面组成,在组件化的开发模式下,每一个页面的开发过程,其本质就是变成了,将一个页面如何拆分成不同的业务组件,这其中,有两种情况:(业务组件)比如一个组件,它是和业务还是有关系的,被多个页面所引用的话,我们是可以把它抽离成一个公共组件的。另外一种(公共组件),完全和业务没有关系的,不旦在业务内可以使用,而且可以跨业务使用,可以抽离成更基础的组件。接着往下就是基础模块,它属于这种非UI的模块,涉及到一些功能型组件,如格式化时间数据,登录,上报代码等。最后一层,也是最底层就是项目的构建层,包括打包依赖***安装升级部署等等。如此看来,对于业务内如何包装共享代码就一目了然了。只要按照这几个层次来划分(在业务内封装可重用组件,至于如何来封装一个更优的组件,也是有些详细的讲究,这个主题回头也可以开篇来详述),即使多人合作开发也不会出乱。稳中有序。2. 不同业务之间同样先来看一张图:如上图所示:如果两个不同业务之间,出现相同的功能及相同业务组件需要复用的话,就会出现不停的被COPY。一旦组件出现改动,就需要打开多个项目进行个性,出现遗漏还得背锅。copy这种方式也极其容易出错。不是一个有效的工作方式。因此,我们可以将这公用组件代码包装成一个NPM安装包(公共组件,基础组件),将项目初始架构包装成一个脚手架。这样在新开一个业务需要复用这些东西的时候,只需命令式安装和组装,然后改改UI就完事了。当然,这里会涉及到NODE命令行工具的开发及NPM安装包的封装,具体封装细节下回也可以详细来讲讲。二、非组件化
如果你的JS代码是一个大文件,找机会把可以重用的功能提取到自包含的对象中,放入到一个单独的库中。若发现已经有了在所有项目开发中重复使用的一组函数,考虑将它们打包,以通过一个对象直接量来重用。下面举一个简单的例子:下面这段代码,包含三个可以在各个业务中高度复用的功能。可以将上面这段代码写在一个字面量里自由调用。当然,有时间或者有兴趣的可以自己来封装一个类似于JQ的库,一个属于自己调用的基础库,也是一种极其优越的代码包装方式。总结一下:代码包装也可以根据实际的场景来做,在你的业务场景的复用性极高的功能都可以包装成一个公共JS方法,或者组件,或者安装包,总之,我们最终的目的就是提升二次开发效率。在设计的时候先考虑把大的功能划分到不同服务中。这样各个大功能之间的耦合就只存在在服务间的接口契约中。再来看同一个服务(大功能)内部如何设计。核心还是低耦合,高内聚。理想情况是把一个大功能实现需要实现的小功能点拆分成一个个小功能点,由一个主要业务类处理一个业务功能点。如果小功能点之间需要交互,也可以考虑用主要业务类对外暴露的接口进行契约约定(例如只能调用接口)而不是直接主要业务类之间直接的任意代码调用。至于如何约束所有开发做到,可以通过静态代码扫描等方式。另外一些典型的面向切面的需求可以考虑用AOP来做。
多参考一些经典的JS插件库,平时的时候多尝试自己去封装一些js插件。这样可以迅速提高自己的js开发能力。
到此,[_a***_]就是小编对于J***aScript打包工具的问题就介绍到这了,希望介绍关于J***aScript打包工具的2点解答对大家有用。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/21061.html