写jQuery插件时的注意点


Posted in Javascript onFebruary 20, 2017

写好jQuery插件,有一些注意的地方(持续添加)。

支持UMD

现在前端开发讲究模块化,所以jQuery插件也最好能够兼顾模块化。

模块化模式大概有几种: AMD、CommonJs、UMD。

AMD(Asynchronous Module Definition)

异步模块定义,可以异步的加载或依赖其他模块,支持的库如 Require.js, Sea.js 。

 例子:

// xxx-plugin.js
define(['jquery'], function ($) {
 function myFunc(){};
 return myFunc;
});

CommonJs

可以将Javascript按照 Node 模块的方式定义。

例子:

var $ = require('jquery');
function myFunc(){};
module.exports = myFunc;

UMD(Universal Module Definition)

为了兼容 AMD 和 CommonJs风格,出现了UMD。

代码:

(function (root, factory) {
 if (typeof define === 'function' && define.amd) {
 // AMD
 define(['jquery'], factory);
 } else if (typeof exports === 'object') {
 // Node, CommonJS-like
 module.exports = factory(require('jquery'));
 } else {
 // Browser globals (root is window)
 root.returnExports = factory(root.jQuery);
 }
}(this, function ($) {
 function myFunc(){};
 return myFunc;
}));

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
js loading加载效果实现代码
Nov 24 Javascript
extjs 初始化checkboxgroup值的代码
Sep 21 Javascript
原生JavaScript实现合并多个数组示例
Sep 21 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
Dec 20 Javascript
一个因@click.stop引发的bug的解决
Jan 08 Javascript
json解析大全 双引号、键值对不在一起的情况
Dec 06 Javascript
详解Vue template 如何支持多个根结点
Feb 10 Javascript
uniapp与webview之间的相互传值的实现
Jun 29 Javascript
封装Vue Element的table表格组件的示例详解
Aug 19 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
关于Js中new操作符的作用详解
Feb 21 Javascript
Node.js获取前端ajax提交的request信息
Feb 20 #Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 #Javascript
Node.js websocket使用socket.io库实现实时聊天室
Feb 20 #Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 #Javascript
Angular在一个页面中使用两个ng-app的方法
Feb 20 #Javascript
JS高仿抛物线加入购物车特效实现代码
Feb 20 #Javascript
ES6中Math对象的部分扩展
Feb 20 #Javascript
You might like
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
javascript parseInt与Number函数的区别
2010/01/21 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
2018/07/26 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
市场营销职业生涯规划书范文
2014/01/12 职场文书
个人典型事迹材料
2014/12/30 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
小学运动会开幕词
2016/03/04 职场文书
python 中yaml文件用法大全
2021/07/04 Python
详解Vue的列表渲染
2021/11/20 Vue.js
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers