使用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 面向对象技术基础教程
Mar 03 Javascript
javascript获取作用在元素上面的样式属性代码
Sep 20 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
May 10 Javascript
使用Angular.js开发的注意事项
Oct 19 Javascript
Node.js调试技术总结分享
Mar 12 Javascript
详解如何使用webpack打包Vue工程
May 27 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
Aug 19 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 Javascript
AngularJS实现的自定义过滤器简单示例
Feb 02 Javascript
Vue开发之封装上传文件组件与用法示例
Apr 25 Javascript
Javascript Web Worker使用过程解析
Mar 16 Javascript
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
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&amp;java(一)
2006/10/09 PHP
杏林同学录(九)
2006/10/09 PHP
基于mysql的论坛(2)
2006/10/09 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
[00:11]战神迅矛
2019/03/06 DOTA
Python列表推导式的使用方法
2013/11/21 Python
python中global用法实例分析
2015/04/30 Python
python僵尸进程产生的原因
2017/07/21 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
Python下简易的单例模式详解
2019/04/08 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
python能开发游戏吗
2020/06/11 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
单位人事专员介绍信
2014/01/11 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android