这篇文章主要讲解了“jQuery的设计模式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jQuery的设计模式有哪些”吧!
一、发布订阅模式
var eventHub = $({}) eventHub.on('xxx', function(){ console.log('收到') }) eventHub.trigger('xxx')
二、用原型继承实现插件系统
$.fn.modal = function(){ ... } $('#div1').modal()
Vue 2 的插件也是类似的思路哦
三、事件委托
$('div').on('click', 'span', function(){...})
说实话,你在 2018 年找前端让他写一个事件委托,我保证 90% 写出来的代码都是有「明显」bug 的。
四、链式调用
$('div').text('hi').addClass('red').animate({left: 100})
五、函数重载(伪)
$(fn) $('div') $(div) $($(div)) $('span', '#scope1')
你会发现 $ 这个函数的参数可以是函数、字符串、元素和 jQuery 对象,甚至还能接受多个参数,这种重载是怎么做到的?
六、命名空间
// 你的插件在一个 button 上绑定了很多事件 $button.on('click.plugin', function(){...}) $button.on('mouseenter.plugin', function(){...}) // 然后你想在某个时刻移除以上所有事件 $button.off('.plugin')
如果你不用 jQuery 就很麻烦了。
七、高阶函数
var fn2 = $.proxy(fn1, asThis, param1)
$.proxy 接受一个函数,返回一个新的函数。
其他就不一一列举了。
jQuery 的 API 风格依然在流行
我们把 jQuery 和 Axios 做一下对比:
$.ajax({url:'/api', method:'get'}) $.get('/api').then(fn1,fn2) axios({ url: '/api', method: 'get'}) axios.get('/api').then(fn1, fn2)
为什么 2018 年流行的 axios 跟 jQuery.ajax 这么相像呢?
因为 jQuery 的 API 实在太好用了!搞得新库根本没法超越它,没有办法设计出更简洁的 API 了。毕竟 jQuery 也是在前端界流行近十年。
所以你学了 jQuery 很容易过渡其他类似的新库。
jQuery 也能做 MVC
很多人以为前端框架是从 Vue、React 和 Angular 才开始的,其实 jQuery 时代早就有基于 jQuery 的 MV* 库了,比如著名的 Backbone.js 和 Marionette.js。
看看下面的 Backbone 应用代码
var TodoView = Backbone.View.extend({ tagName: 'div', template: _.template($('#item-template').html()), events: { 'click .toggle': 'xxx', }, initialize: function () { this.listenTo(this.model, 'change', this.render); }, render: function () { if (this.model.changed.id !== undefined) {return; } this.$el.html(this.template(this.model.toJSON())); return this; } });
感谢各位的阅读,以上就是“jQuery的设计模式有哪些”的内容了,经过本文的学习后,相信大家对jQuery的设计模式有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!