- 做者:陈大鱼头
- github: KRISACHAN
write less, do more -- John Resigjavascript
在2005年8月的某一天,有一位叫John Resig
的美(guo)人,在blog上连发3个栗子公开怼了Prototype
的Behaviour
的代码冗长,在那以后没多久就开源了风靡全球的利器JQuery,还兼容了IE5.5,解决了开发者兼容性处理的心头大患,以后JQuery就一发不可收拾,很快就统一了整个浏览器世界...vue
随着时代的发展、各个浏览器逐渐趋向统一以及node
的出现,兴起了许多现代化的工具,例如:react
, vue
, angularjs
,webpack
,gulp
等能够解放开发者双手,加快开发效率的库与框架;而且浏览器端的API也日渐完善,ES6改革性的出现,JQuery
的代替方案变得愈来愈多,也所以对JQuery
不满甚至要彻底废弃JQuery
的声音也愈来愈多。java
JQuery
JQuery
已经到了暮年,该退出浏览器的舞台....了吗?node
不少人诟病JQuery
体积很大,占用资源不少,可是让咱们来看一下最新的JQuery.min.js
的大小。 react
事实上,最新的JQuery
压缩完以后也就85KB,这点开销,在现代设备中都不是什么问题,移动设备4G甚至能够达到数MB每秒,PC端就更不用说了,因此说JQuery体积多大,占用多大资源这一条在通常状况下是不成立的!jquery
有人说,
dom
操做太麻烦,仍是用MV**
框架直接操做数组来得快一些....webpack
如今github
已经移除了JQuery
的依赖,可是并无使用任何现代化框架,而是用原生JS
去进行了重构,我我的认为,JQuery
被github
移除不能说明JQuery
不中用了,只能说明是浏览器端API以及ECMAScript
已经日渐完善了。git
对于常规的DOM增删改查,在MV**
里只须要操做数组,是比较方便,可是在JQuery
里咱们也能够用操做数据的思惟去实现,封装好要处理的DOM结果,用观察者模式去监听数据源的变更从而更改DOM不同也能够很快嘛?angularjs
一长串的链式调用,看着就很烦github
这锅,JQuery
是不背的。。。由于这就是我的写代码能力的问题了。。。。具体代码就不写了,在下面两节中你们本身判断吧......
JQuery
在跨域中发挥的做用
现代化的先后端协做一般都会以跨域的方式进行,通常方式都是CORS
了,后端开好权限,按AJAX的方式去请求,真香~
可是,若是在一些不得已要用JSONP
的场合,例如第三方SDK使用,现代的框架处理起来就比较难受了,这里用JQuery就很方便了
const getJSON = async () => {
try {
const res = await $.ajax({
url,
dataType: 'jsonp',
jsonp: 'cb',
});
} catch (error) {
// do something;
};
};
复制代码
单纯地用ES6
+ JQuery
也是能够很好的完成任务
JQuery
在动画处理上也发挥了很大的做用
虽然如今不少人写动画会用CSS3
的属性,Web Animations API
或者JSON
去写,可是若是要写一些step的动画,用JQuery也是很好的选择
const step1 = () => $.when(
dom1.animate({
left,
top
}, delay),
dom2.animate({
width,
height
}, delay)
).promise();
const step2 = () => $.when(
dom1.animate({
left,
top
}, delay),
dom2.animate({
width,
height
}, delay)
).promise();
const move = async () => {
await step1();
dom1.delay(500);
await step2();
};
复制代码
其实这样也能够把动画写得很好看
在我内心,
JQuery
永远是个王者
我对技术没有偏见,不论是JQuery
也好,原生JS
也好或者层出不穷的框架,都是工具,只要能好好的完成任务就是好技术。
随着时代的发展,JQuery
的市场占有率是愈来愈少,之后会不会彻底被抛弃,这我不知道。只是JQuery
表明的是一个时代,是浏览器发展的见证者,也是我心目中的王者,虽然我之后也颇有可能会彻底弃用它,可是它在我心目中的地位是不变的!
JQuery
,荣耀!