过时的 jQuery 还有必要学么?怎么学?
前言
有几次小伙伴私聊问我 jQuery 现在企业用的多吗,还有必要学习吗?
感觉这个问题还是专门拿出来讲下比较好;
一般问这类问题的人,基本都是刚刚接触前端没多久的人;
所以我这一期面向的人群是刚接触前端的技术小白。
我说的学 jQuery,当然不仅仅是学习 jQuery 的使用,如果单纯是 jQuery 框架的使用,我觉得基础再差的人,有 1 周的时间,基本就能写项目了。
第一:jQuery 过时了吗?
jQuery 确实过时了,现在主流的方式是 React 和 Vue 两个框架(注意:不是 3 大框架,Angular 在国内基本算凉了)。
jQuery 在新产品 / 新项目中的市场份额越来越少了。
因为互联网产品的快速迭代,很多 jQuery 做的项目基本算凉了;
新项目又以 React 和 vue 为主流;
目前 jQuery 的场景是:老项目本身渐渐死去,新项目中做冷板凳,还是很尴尬的。
第二:jQuery 还有应用场景吗?
目前 jQuery 的虽然越来越少了,但是它的应用场景还是不可替代的;
- 官网类的网站
- 这类网站一般是离不开 jQuery 的,有很多足够多的模块可以直接使用;
- 比如聊天模块,导航模块,等成熟模块
- 哈有一些高大上的效果,3D 立体旋转,各种牛 X 幻灯片,各种爆炸效果,都有代码可以直接拿来使用;
- 对性能要求比较高的网站
- 像我的阿西河网站,主要页面都是 JavaScript 写,连 jQuery 都不用,为了就是极致的性能。
- 但是像 JS 面试题,VUE 面试题,HTML,CSS 面试题页面,那些区块为了自适应,就上 jQuery 了,因为有现成的优秀解决方案
- 但是大型网站,像京东,网易新闻,腾讯新闻,这些对性能要求更高的网站,少
- 对 SEO 要求较高的网站
- 比如一些行业信息的站,新闻站等
从工作的角度:jQuery 有必要学么?
如果单纯从工作角度来说,了解即可,甚至用的时候再看不晚的。
我觉得学 jQuery,看文档,然后跟着做几个例子,了解常见的方法以及怎么使用就足够了。
除非是存活很久的老项目,像淘宝网,京东,网易新闻,腾讯新闻,等等这类老项目,否则中小型公司的新产品一般用到的是不多的。
从学习的角度:jQuery 有必要学么?
有必要学,而且是要源码级别的学习。
前端的路想走的很远,JavaScript 必须要能玩的转,而 Vue/React/jQuery 都是 JavaScript 的一种实现。
虽然工作中直接使用 JavaScript 的场景不多,基本都是 Vue,React,jQuery 写写就好;
但是 JavaScript 还是推荐必须学,而 JavaScript 你要想学习的精,难道仅仅只是他的文档背的熟悉吗?
显然不是的!!!
我们对 JavaScript 的本身知识了解以外,它的表现形式,用法技巧,用来解决工作中问题的使用思路就尤为重要!!!
如果你要学深入一门语言,那么最好的办法就是通过造轮子,通过写真正解决实际问题的框架 / 模块 / 组件 / 轮子来实现;
如果你从这方面想,你就发现,JavaScript 是必须学的,而 jQuery,Vue/React 的封装思路更是必须学的;
工作中使用框架的背后思考
一名合格的程序员,必须思考一个现实问题:同样2个员工在公司里使用Vue干活,为什么一位拿的工资高,一位拿的工资少?
举个例子,在一家 965 的公司里,一位高级前端开发可以拿 25K 的工资,一位中高级的前端开发拿 15K;
现在 Vue,React,等等框架都很多,文档也很全面。有基础的开发者,有个半个月就能学会使用了。
但是为什么一个拿 25K,一个拿 15K,甚至有的拿 10K?
这并不是纯粹 25K 的比 15K 的 Vue 用的熟悉,15K 的比 10K 的用的熟悉,而是因为他们使用框架之外的东西多。
其中项目经验,框架原理都是拉开工资的很大因素。
你可以问问自己,如果提高框架原理,那么不仅仅是学习 jQuery 的原理,Vue,React,还有一些常用的 npm 包,都可以看看其中原理。
你要有一定的代码封装能力。
对学习 JavaScript 的帮助
JavaScript 如果如果想学习的深入,除了掌握他的用法,原理以外,封装组件,造轮子是必经之路。
如果让新手直接研究 Vue / React ,难度还是比较大的,jQuery 是一个很不错的切入点,jQuery 有很多经典的编程思想。
如果你是要学习 JavaScript, 我建议除了掌握基础知识外,写轮子,学习代码封装是非常有必要的,我认为 jQuery 是强烈推荐你学习的。
如何基于 jQuery 学习 JavaScript
如果你要学习 jQuery,我推荐你参考 jQuery 封装一些库,这会让你对 JS 的使用和理解更加的深入。
1. 了解 jQuery
如果要学习jQuery源码,我觉得你首先必须要会用,推荐可以看看本站的 jQuery 教程来简单的了解一下;
知道 jQuery 的常见用法,以及一些常见的 API;
然后我们就
推荐封装的一些库
AJAX
- jQuery.ajax();
- jQuery.get();
- jQuery.post();
属性操作
- .addClass
- .removeClass
- .hasClass
- .toggleClass
- .attr
- .removeAttr
- .prop
Css 操作
DOM 本身
- .css
- .width
- .height
- .innerWidth
- .outerWidth
- .innerHeight
- .outerHeight
DOM 位置
- .position
- .offset
- .offsetParent
- .scrollLeft
- .scrollTop
DOM 操作
- .before()
- .after()
- .append()
- .appendTo()
- .prepend()
- .prependTo()
- .clone()
- .empty()
- .wrap()
- .text()
- .val
动画
- animate
- stop
- fadeIn
- fadeOut
- hide
- show
- toggle
- slideUp
- slideDown
- slideToggle
事件
- on
- off
- bind
- unbind
- ready
- trigger
- click
- hover
- keyup
jquery 选择器
- #id
- .class
- :has
- :button
[name='value']
Util 方法
- data
- extend
- isArray
- merge
- trim
以及重要的 jquery 核心 jQuery()
的实现
简历的影响
很多新人的简历项目里都一样的,美团外卖,饿了么,某某商城,王者荣耀官网,QQ 音乐,网易音乐。
换位思考一下,如果你是面试官,你会怎么看待简历里写这种项目的应聘者??
说句不好听的,纯粹是练手的,这些项目有啥鸟用?
你没有经历过真实的场景,做的无非就是模仿个外表和表皮罢了;
如果你按照我说的,基于 JavaScript 仿些 jQuery 有的方法,比如做事件库,DOM 库,CSS 库,动画库,AJAX 库,工具库。
这些封装经验绝对是你比你放什么王者荣耀官网,美团外卖,饿了么,QQ 音乐之类的项目更吸引面试官。
jQuery 抛砖引玉出 Vue 和 React
jQuery 只是一个抛砖引玉,既然可以仿 jQuery 的重要概念和方法。
那能不能仿 Vue,能不能仿 React???当然都是可以的,你如果有心,你完全也去仿些 vue 和 react 的重要概念和方法。
比如用 JavaScript 实现生命周期,数据响应式等等。
这样的话,你就不仅仅是会用 Vue 和 React 了,因为你实现过,所以原理层面了解的更多些。
关于面试
插一句题外话:去面试的时候,你并不是一定要多么多么牛 X,只需要让自己在所有面试者里更突出就够了,企业招聘也不会一定要找完全符合自己需求的人,而是在一段时间内,从一群人找最适合自己团队的人。
如果你去面试前端开发岗位,你列出我刚才说的那些你造轮子的项目,我觉得是比大多数面试者都好的经历。
而且这些过程,封轮子的经历,你完全可以博客记录下来,Github 上开一个仓库记录下来,然后你写在简历上,绝对都是很大的亮点。
最终总结
如果是从学习 JavaScript 的角度来说,或者从面试的角度来说;
jQuery 和 Vue 或 React,是必须学的,而且是源码级别的学习,
培训班可能因为课时,讲师精力,开班进度等等不教你深入了解原理,或者只分几个工作日就带一下就行了;
但是对个人来说,我觉得是必须研究透彻的;
如果你的时间不够,我建议你完全可以只研究一小部分的原理,这样面试的时候也可以聊聊,也能让自己更突出一些。
当然了,如果是仅仅从公司做项目来说,jquery 学不学无所谓,包括 VUE/react 的原理学不学也没啥大问题。
但是只要你以后去参加面试,我建议你还是必学的!!