我们还有必要深入学习 jQuery 吗
表达想法
前几天在某个视频平台看到一个博主的视频,该博主对于『 我们还有必要深入学习 jQuery 吗?』这个问题做出了一个很肯定的答案:就是没有必要。
而他对于这个结论并也不是空穴来风,同样是做出了一系列的解释。比如说:jQuery 已经过时了、Vue.js以及React.js这样的前端框架能更好地实现jQuery所能实现的功能等等。
当然,作为该博主的个人想法,评论区自然是炸开了锅,有人赞同该博主的言论,而也有人对该博主的言论表示不敢苟同。这里我说说我个人的想法:
我认为 jQuery 虽然是一个多年以前的技术,但是他作为学习路上所必须经历的一段经历,我认为还是有必要进行学习的,但是也不用过度深入,在该阶段花费过多的时间。
jQuery 的开发模式和 Vue.js 等框架的开发模式是不同的两种开发模式,只有体会到两种开发模式的不同之处,我们才能更深入地理解如今所流行的前端框架所流行的原因,以及 jQuery 落后的原因等等。同样在若干年以后,可能会有更多新的前端框架的出现,替代现在地 vue.js、react.js 等等,到时候,经历过 vue.js 时代的我们,是不是又能从一种新的层面看到多种开发模式地区别呢?我们所了解到的是:为什么是这样子?而不是本来就是这样子。永远保持好奇与探索,对一个开发者来说是极其重要的。
而对于 js ,我认为我们应该重点对原生的js进行学习,毕竟 jQuery,vue,react 这些框架都是在js的基础上进行封装的,所以说我们在使用这些框架的时候,实际上我们还是在使用 js ,但是方便就方便在这些框架的一些优秀的封装类帮我们实现了 js 中很多复杂操作,我们只要按照框架所规定的语法进行编写,就能很方便的实现 js 中一些复杂的操作,这也是为什么框架技术能够如此流行的原因之一。
而我们不能只知道使用,而不知原理,这样子是走不远的,但是这并不表示我们就应该去生啃这些框架的源码,而是说我们应该学好 js 的语法,这样子在我们使用时也能很好地理解框架的原理,在使用的过程中,逐步地理解框架。
jQuery 有什么优点?
抛开现在流行的 vue 等前端框架不谈,我们来说说 jQuery 时代,他都有哪些有优点。
能很好的操作 DOM
有这样一个例子,如果我要修改一个元素的样式,我用原生的js是这样子完成地:1
2var dom=document.getElementById('test')
dom.style.color='red'而我用 jQuery 来替代上面地代码
1
$('#test').css('color','red');
相对于原生的 js 来说,我们的代码精简了许多,在 jQuery 中我们用
$
来替代了原生 js 中的document.getElementById
这一行语句,所以代码精简了许多。极其方便地 ajax 操作
在jQuery中,如果我们要使用ajax访问后台的数据,我们可以这样子实现:1
2
3
4
5
6$.ajax({
url:'/index',
success:function(res){
console.log("请求成功")
}
})而如果我们要在原生的js中使用 ajax ,那别提有多复杂了,我们首先得创建一个异步对象,然后再设置请求的 url 以及参数,然后发送请求,最后我们需要将其注册到一个事件上,才能进行访问。虽然我们也能将其封装成一个可重复使用的方法,但是对于 jQuery 来说,他还是太麻烦了。
更方便的页面动效
通常我们的界面需要用到一些很有趣的画面,我们在 jQuery 中可以这样子实现:1
$("#test").animate({left:'100px'})
以上的这些操作,说实话在 js 中我们都可以实现,而 jQuery 作为一个很好的 js 框架,他所封装的很多函数可以大大方便我们的操作,所以这也就是 jQuery 为什么会流行的原因之一。我们自己也能封装一个这样的代码库,只是我们可能不能做到这么优秀,也不一定有时间和精力来做这样的工作。
MVVM 框架是怎么替代 jQuery 的?
现在的 MVVM 框架,他们都引入了几个新的概念:模块化、组件化。并采用了虚拟 DOM 的方式来替代原来的 DOM 操作,在这些框架中,数据和视图实现了分离,对数据的操作不在需要引用响应的 DOM 对象,达到了编程世界中一个共同的目标——解耦。
针对 DOM 操作
在 MVVM 框架中,我们基本看不到 DOM 操作的影子,是因为他们采用了一种绑定元素渲染的方式,来绑定我们的视图以及数据。比如说 vue 框架中的v-model
。
但是 DOM 操作不可能完全不需要,某些特殊情况还是会用到。针对 ajax 操作
在 ajax 操作方面,基本上是被 axios 这样的库给替代了,而且所实现的功能与 ajax 都差不多,而且能更好地契合这些框架。针对界面动效
CSS 3已经能很好地实现界面动态地效果。而且有很多优秀的动效库,能完美适配现在流行的框架,并能更好的实现很多好看的动效。
感想
可能在若干年后地某一天,又会出现更新的比现在更好的框架,那时候又会更加方便我们的使用。而我们同样要顺应时代地潮流,去学习这些新的技术,从入了编程这一行开始,我就深知这是一个需要不断学习知识,更新自己的行业,如果停止学习,就会被高速发展的互联网行业抛弃。所以这是一个很『内卷』的行业,我喜欢这种挑战,也渴望能从这种挑战中获得一个不断进步的自己。