JavaScript的模块化开发框架Sea.js上手指南
GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
【 如果你想靠AI翻身,你先需要一个靠谱的工具! 】
Sea.js所有源码都存放在 GitHub 上:https://github.com/seajs/examples,目录结构为:
1 2 3 4 5 6 7 8 9 10 | examples/ |-- sea-modules 存放 seajs、jquery 等文件,这也是模块的部署目录 |-- static 存放各个项目的 js、css 文件 | |-- hello | |-- lucky | `-- todo `-- app 存放 html 等文件 |-- hello.html |-- lucky.html `-- todo.html |
引入seajs主文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <script src= "js/sea.js" ></script> <script type= "text/javascript" > // seajs配置项 seajs.config({ //设置基本的JS路径(引用外部文件的根目录) base: "./js" , //设置别名(方便后面引用使用) alias:{ "jQuery" : "jquery.js" }, //路径配置(跨目录调用或者目录比较深时使用) paths: { 'jQuery' : 'http://libs.baidu.com/jquery/2.0.0/' }, //设置文件编码 charset: "utf-8" , //预加载文件 preload:[ 'jQuery' ] }); // 引用主入口文件 seajs.use([ 'main' , 'jQuery' ], function (e,$){ //回调函数 alert( "全部加载完成" ); }); </script> |
seajs主入口文件(main)
1 2 3 4 5 6 7 8 9 10 11 12 13 | define( function (require, exports, module) { // 主入口文件引入其他文件依赖 //var testReQ = require('index'); var testReQ = require.async( 'index' , function (){ //异步加载回调 alert( "我是异步加载的index的回调函数" ); }); // 运行index释放的接口方法 // testReQ.testInit(); // 运行index释放的接口方法(module) testReQ.textFun(); }); |
seajs依赖文件(index)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | define( function (require, exports, module) { // 对外释放接口 exports.testInit = function (){ alert( "我是一个接口" ); }; // 如果需要释放大量接口,可以使用module var testObj = { name: "qiangck" , sex: "man" , textFun: function (){ alert( "我是一个使用module.exports的对象方法" ); } } // module.exports接收obj对象 module.exports = testObj; }); |
文件的加载顺序
下面我们从 hello.html 入手,来瞧瞧使用 Sea.js 如何组织代码。
在页面中加载模块
在 hello.html 页尾,通过 script 引入 sea.js 后,有一段配置代码:
1 2 3 4 5 6 7 8 9 10 | // seajs 的简单配置 seajs.config({ base: "../sea-modules/" , alias: { "jquery" : "jquery/jquery/1.10.1/jquery.js" } }) // 加载入口模块 seajs.use( "../static/hello/src/main" ) |
sea.js 在下载完成后,会自动加载入口模块。页面中的代码就这么简单。
模块代码
这个小游戏有两个模块 spinning.js 和 main.js,遵循统一的写法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // 所有模块都通过 define 来定义 define( function (require, exports, module) { // 通过 require 引入依赖 var $ = require( 'jquery' ); var Spinning = require( './spinning' ); // 通过 exports 对外提供接口 exports.doSomething = ... // 或者通过 module.exports 提供整个接口 module.exports = ... }); |
上面就是 Sea.js 推荐的 CMD 模块书写格式。如果你有使用过 Node.js,一切都很自然。
- 在Html中使用Requirejs进行模块化开发实例详解
- 使用requirejs模块化开发多页面一个入口js的使用方式
- 详解JavaScript模块化开发
- Seajs 简易文档 提供简单、极致的模块化开发体验
- JavaScript模块化开发之SeaJS
- 了解Javascript的模块化开发
- javascript 构建模块化开发过程解析
- 深入探寻seajs的模块化与加载方式
- seajs和requirejs模块化简单案例分析
- 基于RequireJS和JQuery的模块化编程日常问题解析
- 基于RequireJS和JQuery的模块化编程——常见问题全面解析
- JavaScript 模块化开发实例详解【seajs、requirejs库使用】
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
相关文章
JavaScript Page Visibility API检测页面是否可见方法详解
这篇文章主要为大家介绍了JavaScript Page Visibility API检测页面是否可见方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-05-05
最新评论