是时候抛弃JQ,回归原生js了……
之前我写过一篇文章叫做《jq不会被淘汰》……而事实上它真的不会被淘汰,因为即使在mvvm框架盛行的今天,原生js的api越来越友好的今天,jq依然在用户量上是霸主……
但是今天我们要讨论的是,抛弃jq,拥抱原生js……
再说正题之前,我们先来看看jq比js,解决了哪些问题,哪里更优秀
1.首当其冲是浏览器兼容,jq本身做了很多浏览器的兼容,这导致了它的代码变得臃肿,但是不得不说,这方面jq做的很好√
2.语法比较简洁,jq的代码语法是很简洁的,因为层层封装后,为的就是易用
3.jq封装的ajax方法很好用,平时我们做前后端分离的时候,请求数据是必不可少的,jq的ajax就比较优雅,而同样的,如果是原生js,写一个ajax代码量可不少……
我说我们应该抛弃jq,拥抱原生,其实不是瞎说的……
首先,ie浏览器用户越来越少,如今已经很少很少了,就算一般人的浏览器装了ie内核的,它们多半也有个极速模式……那就是谷歌内核的……
所以为了那一丢丢的用户,浏览器向下兼容变得不那么重要了……
与其做兼容,不如做引导,如ie下提示更换浏览器……
然后第二点,关于代码语法啥的,的确jq的语法很简洁,也长的比较好看,比如相同的操作一个id
jq:$('#id') 原生:document.getElementById('id')
可以看到,虽然原生js的代码比较长,但是语义化很好啊,一看就知道get element by id ,就是取元素通过id……这理应是我们该提倡的……虽然dom多了会变得不好看,但是……
一旦dom操作很多了就不提倡操作dom了,更提倡vue、react这种不直接操作dom(操作虚拟dom)的方案了……
然后关于ajax,jq的确封装了比较好用的方法,原生不太方便,但是现在我个人比较提倡fetch,而不是ajax,所以原生js里完全可以直接fetch替代ajax
所以jq的这个优势也不复存在了……
然后再说一下原生js的好处
首先就是性能好,这个真的没得说,毕竟是原生……
然后,原生js的api也在更新,现在的很多api都比较新比较能接受了……
再就是,在mvvm框架盛行的今天,我们不可能在这些框架里引入jq,但是却可以天然的写原生js没毛病……
所以……综上所述……
仅代表个人观点哈,不接受反驳(⊙o⊙)…
目前在写的个人项目的后台部分就是原生js的技术桟,甚至都没有用vue,毕竟后台嘛,简陋点没啥的√