51CTOhinet
控制技术资料库/金融行业精粹/商品心得体会
答那时我还须要自学 jQuery 吗?听你在chan说 jQuery 早已落伍了,呢就不必学了?
短标准答案:
jQuery 却是能硬瓜的,学了后对写标识符和封装库很有协助。
那时的「后辈」仍然能自学 jQuery 的价值观,即使以「后辈」的水准,间接认知 Vue / React 的价值观控制技术难度十分大,jQuery 是两个很极好的尾端过渡阶段,即使 jQuery 也蕴含着了十分多的程式设计拳法。
但假如你不该学,就称名吧。间接去学 Vue / React 会难一点儿,但也能学会。
长标准答案:
jQuery 当然落伍了。
当年我在大学的控制技术小组里做 C# 网站开发,须要用到 jQuery 特效,组里的一名小伙伴会用一点儿 jQuery,很快就用 .animate 做出了让我啧啧称奇的特效。我觉得 jQuery 好神奇啊,虽然我当时连 JS 都不会。
于是我立马买了一本《锋利的 jQuery》,硬看。
什么叫「硬看」呢?即使我不会 JS,而且我并没有照着书上敲标识符,仅仅使用眼睛「看 jQuery 标识符」。神奇的是——我居然很快看懂了几乎整本书。以至于那位会用 jQuery 的小伙伴遇到 bug 问我时我能间接给出解答,看起来他并没有看《锋利的 jQuery》这本书(笑)。
到了 2018 年,几乎早已没有新项目会使用 jQuery 来开发了;即使有,也是一件不值得拿出来炫耀的事情。那为什么我却是建议自学 jQuery 呢?
原因如下。
jQuery 教你如何设计 API
上文说到我两个不会 JS 的人居然能看懂 jQuery 的书,其实这不是即使我厉害,而是即使 jQuery 的 API 设计得太人性化了!
举几个例子给大家看看:
第两个是 jQuery 对事件监听的简化
第二个是 jQuery 对元素选择的简化
有没有发现 jQuery 的标识符一读就读懂了?可读性十分强!
当时我作为两个后辈,每每看到 jQuery 那优雅的 API,都禁不住去思考 jQuery 到底是怎么实现的,我自己能不能实现出来(但我并不推荐看 jQuery 源码)。本着这样的想法,我专业委员会了很多程式设计技巧。
为什么有些人标识符水准老是提不高了,就是即使不会造轮子,不会设计优雅的 API,更不会实现优雅的 API,只会调用其他库或框架提供的功能(中枪的举手)。
而 jQuery 则提供了两个简单而又经典的范例供大家学习。
不信的话我们就来看看 jQuery 用到了哪些所谓的设计模式(其实就是程式设计拳法)吧。
一、发布订阅模式
二、用原型继承实现插件系统
Vue 2 的插件也是类似的思路哦
三、事件委托
说实话,你在 2018 年找前端让他写两个事件委托,我保证 90% 写出来的标识符都是有「明显」bug 的。
四、链式调用
五、函数重载(伪)
你会发现 $ 这个函数的参数能是函数、字符串、元素和 jQuery 对象,甚至还能接受多个参数,这种重载是怎么做到的?
六、命名空间
假如你不必 jQuery 就很麻烦了。
七、高阶函数
$.proxy 接受两个函数,返回两个新的函数。
其他就不一一列举了。
jQuery 的 API 风格仍然在流行
我们把 jQuery 和 Axios 做一下对比:
为什么 2018 年流行的 axios 跟 jQuery.ajax 这么相像呢?
即使 jQuery 的 API 实在太好用了!搞得新库根本没法超越它,没有办法设计出更简洁的 API 了。毕竟 jQuery 也是在前端界流行近十年。
所以你学了 jQuery 很容易过渡阶段其他类似的新库。
jQuery 也能做 MVC
很多人以为前端框架是从 Vue、React 和 Angular 才开始的,其实 jQuery 时代早就有基于 jQuery 的 MV* 库了,比如著名的 Backbone.js 和 Marionette.js。
看看下面的 Backbone 应用标识符
AngularJS、Vue 1.x、Vue 2.x 其实都是顺着 Backbone MVC 的思路慢慢优化、改造得来的,假如你提前了解 Backbone 作为知识铺垫,那么认知 Vue 是非常容易的。假如面试官问你 MVC 和 MVVM 的区别,你也是很容易就能答出来的。