arcgis js api模块化工具采用dojo
目前较为普遍采用的模块化框架是requireJs。
dojo与requirejs两者都是 AMD规范下的实现,更多参考Arcgis js api :Dojo and AMD。
与AMD规范相似的模块化规范有:CommonJS(nodejs采用)、CMD(seajs这一模块化框架使用)。
dojo是较为庞大的js框架,除了模块化框架外还提供了各种组件供开发使用,用于大型企业项目开发。
requirejs较为精简,没有庞大的开发库。RequireJS 仅提供模块化加载。参考文章:
ES6之前JavaScript没有官方的模块化规范。随着前端代码增多,为了更加合理高效的开发,对模块化开发有了需求;模块有多种写法,为了统一模块化的写法,前端社区有了相应非官方的规范。参考阮一峰博客:
Javascript模块化编程(三):require.js的用法
因为国内使用dojo不多,在团队配合、框架熟悉程度等问题上,让我们又考虑回到jQuery;
arcgis js开发可以放弃使用dojo的庞大组件,改用轻量的jquery,或者采用angular、vue等较为流行的mvvm框架实现。
参考:https://developers.arcgis.com/javascript/3/jshelp/why_dojo.html
在引入esri开发包时,可以引入compact压缩版本
src="https://js.arcgis.com/3.23compact/",关于压缩版本与标准版详细对比参考:get the api
这样等于仅使用了dojo的模块化、dojo的事件触发等基本核心功能,放弃dojo提供的各种ui组件。
例如这个例子: arcgis js api :using jQuery,演示了用jquery ui实现一个地图控制滑块。
另外参考一篇其他giser写的:自定义infowindow 的文章
其中一个实现方法就是直接放弃使用dojo组件(懒得去研究dojo提供的组件),
改用jquery实现一个infowindow
关于如何使用dojo的模块化开发,我写了一个js读取配置文件的例子供参考。
另外arcgis提供了一个Custom info window(自定义信息框)的例子,可以参考其中模块的定义引用等代码。
更多关于dojo模块化开发可以参考其他文章: