arcgis js api:dojo与js模块化

arcgis js api模块化工具采用dojo

目前较为普遍采用的模块化框架是requireJs。

dojo与requirejs两者都是 AMD规范下的实现,更多参考Arcgis js api :Dojo and AMD。

与AMD规范相似的模块化规范有:CommonJS(nodejs采用)、CMD(seajs这一模块化框架使用)。

dojo是较为庞大的js框架,除了模块化框架外还提供了各种组件供开发使用,用于大型企业项目开发。

requirejs较为精简,没有庞大的开发库。RequireJS 仅提供模块化加载。参考文章:

JavaScript模块管理之RequireJS

ES6之前JavaScript没有官方的模块化规范。随着前端代码增多,为了更加合理高效的开发,对模块化开发有了需求;模块有多种写法,为了统一模块化的写法,前端社区有了相应非官方的规范。参考阮一峰博客:

Javascript模块化编程(一):模块的写法

Javascript模块化编程(二):AMD规范

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实现一个地图控制滑块。


与地图相关的事件依然用到dojo去触发

另外参考一篇其他giser写的:自定义infowindow 的文章

其中一个实现方法就是直接放弃使用dojo组件(懒得去研究dojo提供的组件),

改用jquery实现一个infowindow



关于如何使用dojo的模块化开发,我写了一个js读取配置文件的例子供参考。

另外arcgis提供了一个Custom info window(自定义信息框)的例子,可以参考其中模块的定义引用等代码。

更多关于dojo模块化开发可以参考其他文章:

Dojo学习之模块化

一个de两种意思——谈谈Dojo define 和declare的区别

你可能感兴趣的:(arcgis js api:dojo与js模块化)