Fork me on GitHub
随笔 - 87  文章 - 0  评论 - 308  阅读 - 42万

简单实现前端代码的模块化管理

mini-define

依据require实现的简易的前端模块化框架。如果你不想花时间学习require.js,也不想翻看长篇的cmd/amd规范,那么这个mini-define就是你不错的选择。如果你之前用过sea.js或require.js那么mini-define更加高效,更加轻量,更加易用。

项目地址:

define.js: https://github.com/bjtqti/study/tree/master/define

require.js https://github.com/bjtqti/study/tree/master/require

用法

首先定义模块

定义模块 

一:定义模块用define函数

1.1 根据是否有依赖,有两种情况:

1.1.1:没有依赖的模块
        define('id',function(){
            // put your code here
        });

 

1.1.2:有依赖的模块
        define('id',['modeA','modeB'],function(A,B){
            // put your code here
        });

 

1.2 根据是否需要返回处理结果给外部使用,又可以分两种情况:

1.2.1有返回对象:
            define('id',function(){
                return {
                    // put your code here
                }
            });

 

1.2.2 没有返回对象
            define('id',function(){
                // put your code here
            });

 

二: 调用模块用require()函数

2.1 根据请求的模块数,可以有两情况:

    2.1.1.调用单个模块

        require('modeId')

    2.1.2.调用多个模块
            require(['modeA','modeB']);
2.2 根据是否有回调处理,又可以分为两种情况:

    2.2.1 有回调处理函数
            require('modeId',function(mode){
                //put your code here
            });

            require(['modeA','modeB'],function(A,B){
                //put your code here
            });

 

    2.2.2 没有回调处理
            require('modeId');

然后在index.html页面依次引用所需模块

<!--核心模块-->
<script src="lib/core/require.js"></script>
<!--用于演示的模块-->
<script src="lib/main.js"></script>
<script src="lib/config.js"></script>
<script src="lib/init.js"></script>

 

最后就是用你喜欢的方式对lib目录进行合并压缩,生成一个min.js文件。 在发布应用的时候,相应的index.html也需要调整一下:

<script src="lib/min.js"></script>

 

优点:

  1. 相对于seajs.js或原版的require.js来说,加注释才一百来行的代码用轻量来形容都显胖,完全是骨感。
  2. 完全没有什么高深的内容,也没有复杂的技巧,几乎是零学习成本。
  3. 其它
posted on   bjtqti  阅读(2183)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
< 2025年3月 >
23 24 25 26 27 28 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 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示