当前位置: 首页 > 工具软件 > RIAEasy > 使用案例 >

RIAEasy之基础包(一)

苗阳文
2023-12-01

RIAEasy之基础包(一)

前篇说到,RIAEasydojo进行了一个整体包装,即rias/rias.js,其代码如下:

var rias = {};

define([
	"dojo/has"
], function(has) {

	///不在前面加载,是为了保障加载的是打包后的 dojo/dojo 和 dijit/dijit(host-browser)
	require(["rias/_rias"], function(){
		if(!rias.require.packs.appRoot){
			rias.require.packs.appRoot = {name: 'appRoot', location: '../appRoot', main: 'appRoot'};
		}
		if(has("host-browser")){
			if(!rias.require.packs.appModule){
				rias.require.packs.appModule = {name: 'appModule', location: '../appModule', main: 'appModule'};
			}
			require(["dijit/dijit"], function(){
				require(["rias/riasw/riasw"], function(){
				});
			});
		}else{
			require(["rias/riass/riass"], function(){
			});
		}
	});
	return rias;

});

从代码上看,rias包分为前端(包含domhost-browser)和服务器端(不包含dom)两个部分,而rias/_rias.js则是两者共用模块,主要完成不包含dom内容的运行环境定义、lang重构、切片和消息机制定义、Destroyable重构等功能:

运行环境定义如下:

rias = dojo.getObject("rias");

rias.config = config;

rias.isDebug = config.isDebug;

rias.has = has;

rias.i18n = dojo.delegate(dojo.i18n);

rias.locale = dojo.locale;

rias.define = define;

rias.require = require;

rias.baseUrl = rias.require.baseUrl;

rias.toUrl = rias.require.toUrl;

rias.declare = declare;

rias.setObject = dojo.setObject;

rias.getObject = dojo.getObject;

可以看出,rias包基本沿用了dojo的环境定义。

lang重构主要完成了对dojolang模块引用,并做了一些扩展,比如:

扩展了StringArray的一些操作函数:

rias.trim;

rias.trimStart;

rias.trimEnd;

rias.startWith;

rias.endWith;

rias.firstLowerCase;

rias.firstUpperCase;

rias.lastString;

rias.indexOf;

rias.indexOfByAttr;

rias.lastIndexOf;

rias.concat;

增加了一些常用函数:

rias.isObjectExact;

rias.isObjectSimple;

rias.likeNumber;

rias.toNumber;

rias.toFixed;

rias.toInt;

rias.toStr;

rias.toHTML;

rias.min;

rias.max;

rias.toJson;

rias.mixinDeep;

rias.hostBrowser;

rias.isDomNode;

rias.isDijit;

rias.isRiasw;

rias.isRiasModule;

切片和消息机制则基本沿用(引用)了dojoaspecttopic/publish/subscribe

Destroyable重构是_rias.js中比较重要的一项内容,将在下一篇中详细介绍。

 

 类似资料: