使用mini-define实现前端代码的模块化管理


Posted in Javascript onDecember 25, 2014

mini-define

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

用法

首先定义模块

定义模块

一:定义模块用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>

优点:

相对于seajs.js或原版的require.js来说,加注释才一百来行的代码用轻量来形容都显胖,完全是骨感。
完全没有什么高深的内容,也没有复杂的技巧,几乎是零学习成本。

Javascript 相关文章推荐
JavaScript 继承的实现
Jul 09 Javascript
jquery的ajax异步请求接收返回json数据实例
Jun 16 Javascript
Javascript中arguments用法实例分析
Jun 13 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
Nov 17 Javascript
js中通过getElementsByName访问name集合对象的方法
Oct 31 Javascript
Extjs让combobox写起来简洁又漂亮
Jan 05 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
Jun 09 Javascript
React进阶学习之组件的解耦之道
Aug 07 Javascript
Vue清除定时器setInterval优化方案分享
Jul 21 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 Javascript
jQuery中html()方法用法实例
Dec 25 #Javascript
jQuery中val()方法用法实例
Dec 25 #Javascript
24款热门实用的jQuery插件推荐
Dec 24 #Javascript
js获取当前时间显示在页面上并每秒刷新
Dec 24 #Javascript
Javascript 多物体运动的实现
Dec 24 #Javascript
Javascript 运动中Offset的bug解决方案
Dec 24 #Javascript
jQuery中height()方法用法实例
Dec 24 #Javascript
You might like
php比较两个绝对时间的大小
2014/01/31 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
node内置调试方法总结
2018/02/22 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
Python中input和raw_input的一点区别
2014/10/21 Python
Python中实现的RC4算法
2015/02/14 Python
python版简单工厂模式
2017/10/16 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
Django 自定义分页器的实现代码
2019/11/24 Python
Python谱减法语音降噪实例
2019/12/18 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
2014年高考决心书
2014/03/11 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python