在app中JS使用模块化加载,为什么要这么做?
使用模块化加载更加简单方便,无需要手动引入多个JS文件只需要再入口填写对应模块名即可加载使用该内部方法。
该插件适应apicloud APP 也适用网页。
SDK下载链接:https://pan.baidu.com/s/1ypEAvbZLEwAHDfIwtTtkGg 提取码:xmbx
js主入口文件我们封装了以下公开函数:
// 加载一个或多个内置模块,可以使用文本或数组方式加载
// @param module string/Array 模块名(此处加载的模块需要你自己定义,下面有模块定义方法)
// @param Callback function 回调,所有模块加载完成后执行此回调
ipwas.use(module,Callback);
//使用示范:
// 加载单个模块
ipwas.use("module1",function(){
// 加载完成了可以使用该模块的方法了
ipwas.module1.test();
});
// 使用数组加载多个模块
ipwas.use(["module1",'module2'],function(){
// 加载完成了可以使用该模块的方法了
ipwas.module1.test();
});
// 动态加载JS文件
// @param url string 欲加载的JS文件路径或网络连接
// @param Callback function JS文件加载完成后执行此回调。
ipwas.loadJS(url,Callback);
// 使用示范:
// 加载远程链接 jquery 插件
ipwas.laodJS("http://libs.baidu.com/jquery/2.0.0/jquery.min.js",function(){
// JS加载完成
alert($('html').html());
});主入口文件ipwas.min.js 中插件定义:
// 加载模块需要定义文件位置
// 为此你需要在 ipwas.min.js 中 增加你需要对应的模块
/*
例如:
plugin:{
user:'module/user',
test:'module/test',
}
user 为 模块名 ,后面的值为路径 默认是放在 module 目录下的 user 为对应的JS 文件名
加载实列:
ipwas.use(["user"],function(){});
*/定义模块方法:
/**
* user = 模块名
* require = 引入其他模块
* exports = 内部方法传递
* module = 其他关联的一些属性和方法
* **/
;!function(e){
"use strict";
define('user',function(require, exports, module){
// 在模块中调用模块B,未加载模块自动加载,加载为同步,但不会阻塞需要加载完成才能调用对应方法
require("test");// 初始化test模块,这里test 只是示范具体根据你的需要加载你对应的模块
exports.test = function(){
alert('模块A调用成功');
var test = require("test");/*必须在入口初始化,不初始调用可能会报报错,因为JS未加载完成。*/
test.test();
}
});
}(window);
/**
注意:user 为 模块名也就是使用方法开头,这里按你自己的业务更改,这里必须与上面入口加载名一致
以 user 中的 test 为列:
它的正确使用方法是:ipwas.user.test();
**/插件使用方法:
ipwas.你的模块名.模块名中对应方法();
以user 模块示范:
它的正确使用方法是:ipwas.user.xxxxxx;
具体请下载SDK吧,里面有详细示范