之前我写过一篇文章叫做《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,毕竟后台嘛,简陋点没啥的√

抛弃JQ,回归原生js……的更多相关文章

  1. jq与原生js实现收起展开效果

    jq与原生js实现收起展开效果 (jq需自己加载) <!DOCTYPE html> <html> <head> <meta charset="UTF ...

  2. 导航栏中各按钮在点击当前按钮变色其他按钮恢复为原有色的实现方法(vue、jq、原生js)

    一.vue如何实现? 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  3. jq 与原生js 方法互相转换

    最近在用mui写页面,当然了在移动App里引入jq或zepto这些框架,肯定是极不理性的.虽然jq很简单,但是也有兼容问题,js基础是很重要的,jq的成功当时是因为ie6.7.8.9.10.chrom ...

  4. jq 和 原生js进行传输文件ajax请求

    <body> <input id="file_upload" name="file_upload" type="file" ...

  5. JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)

    JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...

  6. 折腾一天,获取下列多选框的所有选中值,原生js可直接通过obj.val()来获取,可jq不行,要通过循环取值来获取;

    折腾一天,获取下列多选框的所有选中值,原生js可直接通过obj.val()来获取,可jq不行,要通过循环取值来获取;

  7. 原生JS与JQ获取元素的区别

    刚学JQ不久,有时候可能会把JS和JQ获取元素的方式搞错,接下来获取属性方法什么的就一发不可收拾了,现在把两者获取获取元素的代码整理下. 一.原生JS获取元素. 1.常用的三种方式获取元素对象(将指定 ...

  8. 原生JS 和 JQ 获取滚动条的高度,以及距离顶部的高度

    JQ:相对比较简便 获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度 ...

  9. jq商品展示图放大镜 and 原生js和html5写的放大镜效果 ~~效果不错

    <!DOCTYPE HTML><html lang="en-US"><head> <meta charset="UTF-8&qu ...

随机推荐

  1. ssm搭建报错

    在搭建ssm框架时候踩得坑:1.对于拦截器url-parttern的设置:第一次设置的是/** 本以为这个是表示拦截所有,没想到这是错误的写法,正确的写法是/    启动项目不会报错,但是会出现404 ...

  2. Linux上的文件搜索

    locate 基础了解 在centos7上默认没有locate命令,需要先手动安装.安装步骤:http://www.cnblogs.com/feanmy/p/7676717.html locate命令 ...

  3. oracle开启一个用户

    我的工具,PL/SQL Developer(其他工具大同小意) 1.用系统管理员账号登入数据库    账号是:sys,   connect as:sysdba  登入进入如下页面. 2.查看所有用户( ...

  4. 【转载】jQuery手机移动端触屏日历日期选择

    文章转载自 科e互联 http://www.internetke.com/ 原文链接:http://www.internetke.com/effects/css3/2015/0120/1222.htm ...

  5. linux 计划任务(crontab)

    每天写一点,总有一天我这条咸鱼能变得更咸 cron服务是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业.频率可以划分为 分钟 小时 天 月 周,格式如下: 1.crontab 服 ...

  6. win10 uwp 无法附加到CoreCLR

    本文说的是在vs调试无法附加到CoreCLR.拒绝访问.已经如何去解决,可能带有一定的主观性和局限性,说的东西可能不对或者不符合每个人的预期.如果觉得我有讲的不对的,就多多包含,或者直接关掉这篇文章, ...

  7. HTML5之indexedDB

    从陌生到了解,花了一下午的时间,以下的地址还是不错的参考资料,省的到处去找 HTML5本地存储——IndexedDB(一:基本使用) 官方API接口文档 官方使用示例 html5 初试 indexed ...

  8. Windows中 MySQL5.7.17解压版安装步骤

    1.先去MySQL官网下载.当前最新版是5.7.19,可能安装方法不同了,本人测试没有安装成功,若有安装成功的朋友,希望分享一下安装步骤. 个人推荐下载MySQL5.7.17,官方下载网址:https ...

  9. Android 开发笔记___RelativeLayout

    xml文件实现 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andr ...

  10. touch pointer

    在早期的浏览器,输入的事件其实相对单纯,只有考虑到鼠标和键盘两种:而当时的鼠标事件,其实就是 click.mousedown.mouseup 等等的事件.但是当手机.平板开始流行时候,再移动装置上的主 ...