写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 相关文章推荐
javascript实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
js查找节点的方法小结
Jan 13 Javascript
EasyUi datagrid 实现表格分页
Feb 10 Javascript
jquery实现图片随机排列的方法
May 04 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
JavaScript 计算笛卡尔积实例详解
Dec 02 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 Javascript
JavaScript时间戳与时间日期间相互转换
Dec 11 Javascript
angularjs中判断ng-repeat是否迭代完的实例
Sep 12 Javascript
浅析JavaScript 函数柯里化
Sep 08 Javascript
vue2的 router在使用过程中遇到的一些问题
Apr 13 Vue.js
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
Get或Post提交值的非法数据处理
2006/10/09 PHP
Search Engine Friendly的URL设计
2006/10/09 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
python重试装饰器示例
2014/02/11 Python
详解Python3中yield生成器的用法
2015/08/20 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python谱减法语音降噪实例
2019/12/18 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
django 模型字段设置默认值代码
2020/07/15 Python
Python 实现进度条的六种方式
2021/01/06 Python
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
元旦晚会感言
2014/03/12 职场文书
查摆问题整改措施
2014/10/24 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
作文批改评语
2014/12/25 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL