jquery过时了吗(jquery还需要学吗)

我现在还需要学习jQuery吗?在知乎上看到有人说jQuery已经过时了,不用学了。
简短回答:
JQuery还是可以学习的。学了之后,对写代码和包库很有帮助。
现在“新人”还是可以学习jQuery的思想的,因为在“新人”的层面很难直接理解Vue/React的思想,jQuery是一个很好的中间过渡,因为jQuery也包含了很多编程的套路。
但是如果你不想学,那就不要学。直接学Vue/React会难一点,但是也可以学。
长回答:
当然jQuery已经过时了。
我在大学技术组做C#网站开发的时候,需要用到jQuery特效。我团队中的一个朋友会用一点jQuery,很快就做出了让我惊讶的特效。动画。我觉得jQuery很神奇,虽然那时候我连JS都不会。
于是马上买了一本《锋利的 jQuery》认真读了起来。
你说的“努力寻找”是什么意思?因为不懂JS,也没有按照书上说的打代码,只是用眼睛“看jQuery代码”。神奇的是,3354,我很快就看懂了几乎整本书。这样当会用jQuery的小伙伴遇到bug问我的时候,我就可以直接给出答案了。好像没看过《锋利的 jQuery》(笑)。
到2018年,几乎不会使用jQuery开发新项目;就算有,也不值得炫耀。那我为什么还建议学习jQuery?
原因如下。
JQuery教你如何设计API。
如上所述,一个不会JS的人,其实也能看懂jQuery的书。其实不是因为我牛逼,而是因为jQuery的API设计太人性化了!
这里有几个例子给你看:
首先是jQuery对事件监控的简化。
//当时如果不使用jQuery监听事件(兼容IE 6),应该这样写if(button . addevent listener)button . addevent listener(‘ click ‘,fn);else if(button . attach event){ button . attach event(‘ onclick ‘,fn);} else { button.onclick=fn}//但是如果用jQuery,只需要写$(button)。on(‘click ‘,fn)第二个是jQuery对元素选择的简化。
//如果要获取对应于的所有元素。导航。navItem,在jQuery $(‘中是这样写的。导航。navItem ‘))//在IE 6上,你要写var navitems=document . getelementsbyclassname(‘ navItem ‘)var result=[]for(var I=0;一、航行长度;I) {if (navitems [i].parent node . class name . match(/\ bnav \ b/){ result . push(navitems[I])} }你有没有发现jQuery的代码一读就懂了?可读性很强!
当时作为新人,每次看到jQuery优雅的API,都会忍不住想jQuery是怎么实现的,自己能不能实现(但不建议看jQuery的源代码)。抱着这个想法,我学到了很多编程技巧。
为什么有些人总是无法提高自己的代码水平?是因为他们不会造轮子,不会设计优雅的API,也不会实现优雅的API。他们只调用其他库或框架提供的函数(中枪的举手)。
而jQuery则提供了一个简单而经典的例子供大家借鉴。
不信的话,我们来看看jQuery都用了哪些所谓的设计模式(其实就是编程套路)。
一、发布订阅模式
Var hub=$ ({}) eventhub.on (‘XXX ‘,function(){ console . log(‘ received ‘)})event hub . trigger(‘ XXX ‘)II。用原型继承实现插件系统
. fn . modal=function(){.} $ (‘# P1 ‘)。Modal () Vue2也是类似的思路。
三。事件委托
$ (‘p ‘)。On (‘click ‘,’ span ‘,function () {.})说实话,2018年你让前端写一个事件委托,我保证写出来的代码90%都有“明显”的bug。
第四,连锁电话
$ (‘p ‘)。文本(“嗨”)。addclass (‘red ‘)。animate ({left3360 100}) V .函数重载(伪)
$ (fn) $ (‘p’) $ (p) $ ($ (p)) $ (‘span ‘,’ # scope1 ‘)你会发现$这个函数的参数可以是函数、字符串、元素和jQuery对象,它甚至可以接受多个参数。这种过载是怎么做到的?
不及物动词命名空间
//您的插件绑定了许多事件$ button.on (‘click.plugin ‘,function () {.})$ button . on(‘ mouse enter . plugin ‘,function () {.})//然后你要把上面的事件都去掉$ button.off(‘.})在某个时候。
七。高阶函数
Var 2=$。proxy (FN1,as this,param1) $。代理接受一个函数并返回一个新函数。
其他的就不一一列举了。
jQuery的API风格依然流行。
让我们比较一下jQuery和Axios:
$.Ajax ({URL :’/API ‘,方法3360′ Get’}) $。Get (‘/API ‘)。然后是(FN1,FN2) axios ({URL 3360’/API ‘,方法3360′ Get’}) Axios。得到
因为jQuery的API太好用了!弄个新库根本无法超越,也没办法设计更简洁的API。毕竟jQuery在前端行业也流行了近十年。
所以在学习jQuery之后,你可以很容易地过渡到其他类似的新库。
JQuery也可以做MVC
很多人认为前端框架是从Vue、React、Angular开始的。其实很久以前就有基于jQuery的MV*库了,比如著名的Backbone.js和Marionette.js
看看下面的主干应用程序代码
var TodoView=主干。View.extend({tagName: ‘p ‘,template: _。模板($(‘#item-template ‘)。html()),events: { ‘ click。toggle’: ‘xxx ‘,},initialize : function(){ this . listento(this . model,’ change ‘,this . render);}、render : function(){ if(this . model . changed . id!==未定义){ return}这个。$ El . html(this . template(this . model . tojson()));还这个;}});AngularJS,Vue 1.x,Vue 2.x其实都是沿着主干MVC的思路慢慢优化改造的。如果提前知道Backbone作为知识的铺垫,理解Vue是非常容易的。如果面试官问你MVC和MVVM的区别,你可以轻松回答。
原文链接:https://zhuanlan.zhihu.com/p/46753973
关注我的头条号,分享更多技术学习文章。我是一个从事开发多年的老web前端程序员,目前辞职做自己的web前端私人量身定制课程。今年年初,我花了一个月的时间整理了一个最适合2019年的干货web前端学习产品。各种框架整理出来发给每一个前端朋友。想要获取,可以关注我的头条号,后台私信我:前端,免费获取。

其他教程

“环外”国风正在完成沉淀和筛选。

2022-9-1 6:23:51

其他教程

作品欣赏|日初首都办公室:东方世界观的办公空间

2022-9-1 6:25:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索