网易首页 > 网易健康 > 正文

抛弃jQuery,拥抱原生JavaScript

0
分享至
前端发展很快,现代浏览器原生 API 已经足够好用。我们并不需要为了操作 DOM、Event 等再学习一下 jQuery 的 API。

前端发展很快,现代浏览器原生 API 已经足够好用。我们并不需要为了操作 DOM、Event 等再学习一下 jQuery 的 API。同时由于 React、Angular、Vue 等框架的流行,直接操作 DOM 不再是好的模式,jQuery 使用场景大大减少。因此我们项目组在双十一后抽了一周时间,把所有代码中的 jQuery 移除。下面总结一下:

Why not jQuery

1. 模式变革

jQuery 代表着传统的以 DOM 为中心的开发模式,但现在复杂页面开发流行的是以 React 为代表的以数据/状态为中心的开发模式

应用复杂后,直接操作 DOM 意味着手动维护状态,当状态复杂后,变得不可控。React 以状态为中心,自动帮我们渲染出 DOM,同时通过高效的 DOM Diff 算法,也能保证性能。我们在 React 应用实践中也发现,大部分当你想直接操作 DOM 的时候,就意味着你可能做错了。

2. 不支持同构渲染

重构就是前后端运行同一份代码,后端也可以渲染出页面,这对 SEO 要求高的场景非常合适。由于 React 等流行框架天然支持,已经具有可行性。当我们在尝试把现有应用改成同构时,因为代码要运行在服务器端,但服务器端没有 DOM,所以引用 jQuery 就会报错。这也是要移除 jQuery 的迫切原因。同时不但要移除 jQuery,在很多场合也要避免直接操作 DOM。

3. 原生 API 足够好用

由于浏览器的历史原因,曾经的前端开发为了兼容不同浏览器怪癖,需要增加很多成本。jQuery 由于提供了非常易用的 API,屏蔽了浏览器差异,极大地提高了开发效率。这也导致很多前端只懂 jQuery。其实这几年浏览器更新很快,也借鉴了很多 jQuery 的 API,如 querySelector,querySelectorAll 和 jQuery 选择器同样好用,而且性能更优。

4. 性能

前端开发一般不需要考虑性能问题,但你想在性能上追求极致的话,一定要知道 jQuery 性能很差。原生 API 选择器相比 jQuery 丰富很多,如 document.getElementsByClassName 性能是 $(classSelector) 的 50 多倍!

测试链接:http://jsperf.com/jquery-vs-native-api

5. 时机成熟

差的浏览器(IE)已经淘汰的差不多了。

If We Didn’t Spend So Much on IE Support, We Could Be Taking Vacations on Mars

Christian Alfoni

我们的主打产品现在有千万用户,因为我们一直引导用户升级浏览器,上个月统计 IE 9 以下用户只占不到 3%。但为了这 3% 的用户我们前端开发却增加了很多工作量,也限制了我们升级我们的架构,因此放弃支持他们利大于弊。当然这要根据产品来定,比如这是百度统计的国内浏览器占有率,IE8 竟然还有 22%。有些产品可以为了保证用户体验,在旧的浏览器上投入很大成本,甚至做到了极致。其实我觉得产品更应该做的是引导用户升级浏览器。微软也宣布 2016年1月12号停止支持 IE 11 以下浏览器,继续使用旧浏览器就会有安全风险,我们更应该主动引导,只要产品有足够吸引力,大部分用户升级并不困难。

数据来源 百度统计

下面是国际上 IE 占有率,IE8 已经跌出前 10,IE 11 比较多,还好支持他们并不难。

数据来源 W3 Counter

如何移除 jQuery

1. 替换代码

移除 jQuery 可以很顺利,我们把整个过程详细整理了,并开源。

打开 https://github.com/oneuijs/You-Dont-Need-jQuery 对 API 查找替换即可。

同时我们简单封装了一些方法:

oui-dom-utils 来做选择器和样式相关

oui-dom-events 来做 Event,支持命名空间和事件代理

刚去了 jQuery 又引了新的库,这不是玩我吗??其实以上两个库很简单,只是常用方法的简单封装,建议你看一下代码。你当然可以不用。

以上的库都用于我们的生产环境,我们会长期维护,保证更新。

2. 旧浏览器自动跳转

代码替换后,当用户用旧浏览器打开时,你还要做一个跳转,把用户定位到提示页面,提示用户下载升级浏览器。IE9 以下浏览器都支持条件判断语句,可以在 标签结束前添加如下代码做自动跳转


总结

本文并不是强迫你一定要移除 jQuery,jQuery 为支持旧浏览器节省了很多成本。但条件成熟的情况下,移除 jQuery,参照 You Don’t Need jQuery 拥抱原生 JavaScript 能同样保证开发效率,也可以给产品带来更好的性能,同时也能提高开发者水平。

转载:http://segmentfault.com

来源:大前端

相关推荐
热点推荐
印军确定攻击方向,中印边境冲突恶化,解放军备战最坏情况

印军确定攻击方向,中印边境冲突恶化,解放军备战最坏情况

科技生活帮
2024-05-07 19:13:26
中共中央发出向毛主席学习的号召,振奋人心!

中共中央发出向毛主席学习的号召,振奋人心!

华人书画艺术
2024-05-08 07:57:52
姆巴佩:多特进攻两次就进球,我们猛攻却无果 踢得好怎会中柱?

姆巴佩:多特进攻两次就进球,我们猛攻却无果 踢得好怎会中柱?

直播吧
2024-05-08 08:55:15
小杨哥正式宣战,为电音节狠评某媒体:为什么总是搞我呢?

小杨哥正式宣战,为电音节狠评某媒体:为什么总是搞我呢?

素素娱乐
2024-05-08 07:18:19
高铁宣布涨价近20%!专家:基层民众出行选绿皮火车,评论区炸锅

高铁宣布涨价近20%!专家:基层民众出行选绿皮火车,评论区炸锅

起喜电影
2024-05-07 21:27:48
官宣!常规赛DPOY出炉,戈贝尔强势当选,文班亚马排名第二

官宣!常规赛DPOY出炉,戈贝尔强势当选,文班亚马排名第二

闹闹体坛
2024-05-08 09:52:10
男演员的身材管理有多重要?看郭麒麟和张若昀的同框照就知道了

男演员的身材管理有多重要?看郭麒麟和张若昀的同框照就知道了

娱乐圈十三太保
2024-05-07 20:25:44
驶向何方:珠海有轨电车停运3年后确定开拆,多地项目陷于争议

驶向何方:珠海有轨电车停运3年后确定开拆,多地项目陷于争议

澎湃新闻
2024-05-07 19:18:28
哈佛大学正式文件,向示威学生发最后通牒:继续抗议的人,勒令停学!

哈佛大学正式文件,向示威学生发最后通牒:继续抗议的人,勒令停学!

不掉线电波
2024-05-07 09:37:45
那辆燃烧的新能源车烧掉了什么?

那辆燃烧的新能源车烧掉了什么?

不死好鸟
2024-05-06 23:43:13
粉碎四人帮后,汪东兴表示继续打倒邓小平,陈云:汪东兴当领导,全党都不会答应

粉碎四人帮后,汪东兴表示继续打倒邓小平,陈云:汪东兴当领导,全党都不会答应

史论纵横
2023-04-16 11:48:14
哈马斯自行宣布停火条件激怒以色列,埃及重兵堵死辛瓦尔出路

哈马斯自行宣布停火条件激怒以色列,埃及重兵堵死辛瓦尔出路

移光幻影
2024-05-07 17:35:28
3-0!孙颖莎横扫对手,用时15分钟快速打卡下班,轰11:3,11:4

3-0!孙颖莎横扫对手,用时15分钟快速打卡下班,轰11:3,11:4

湘楚风云
2024-05-08 02:31:48
5月8日凌晨沙特大满贯赛连曝3大冷:4号种子出局!王曼昱绝地反击

5月8日凌晨沙特大满贯赛连曝3大冷:4号种子出局!王曼昱绝地反击

宝哥精彩赛事
2024-05-08 02:29:41
“后悔带妈妈去看凤凰传奇演唱会”,扫兴式的家教,终会不欢而散

“后悔带妈妈去看凤凰传奇演唱会”,扫兴式的家教,终会不欢而散

熙熙说教
2024-05-07 17:53:40
财政部公布数据,养老金涨幅多少?退休“中人”养老金怎么涨?

财政部公布数据,养老金涨幅多少?退休“中人”养老金怎么涨?

小心超人当
2024-05-08 02:32:49
外媒大赞嫦娥六号!中国月球背面“挖一勺”就走,还帮助4国登月

外媒大赞嫦娥六号!中国月球背面“挖一勺”就走,还帮助4国登月

环球科学猫
2024-05-07 11:58:42
全国恐慌啊,打了科兴与生物疫苗的,谁也别庆幸!

全国恐慌啊,打了科兴与生物疫苗的,谁也别庆幸!

今日养生之道
2024-05-07 20:26:04
又击毙了一个!

又击毙了一个!

凡事一定有办法13119
2024-05-07 10:31:29
项立刚怼丘成桐“你不懂数学”,网友:你的手沾过高等数学课本吗

项立刚怼丘成桐“你不懂数学”,网友:你的手沾过高等数学课本吗

东东趣谈
2024-05-07 10:22:46
2024-05-08 10:10:44

头条要闻

苹果新款iPad Pro直接搭载M4芯片 起售价大涨2200元

头条要闻

苹果新款iPad Pro直接搭载M4芯片 起售价大涨2200元

体育要闻

没戈贝尔没问题 森林狼的防守强到离谱

娱乐要闻

玄彬为孙艺珍拍吃饭照片 甜蜜溢出屏幕

财经要闻

金徽酒业绩未达标!管理层薪酬却翻倍

科技要闻

M4芯片直接让iPad Pro秒杀了所有AI PC!

汽车要闻

配国产首颗车规级7nm芯片 吉利银河E5官图发布

态度原创

艺术
教育
房产
亲子
公开课

艺术要闻

造科幻之物于园林 “天工开悟——夏航雕塑展”于南池子美术馆呈现

教育要闻

多所大学宣布:高考数学优秀可破格入围,学数学到底有什么用呢?

房产要闻

真猛!底价拿地,央企又要加码三亚!

亲子要闻

妈妈带龙凤胎宝宝晒太阳,妹妹香香软软哥哥满脸疲惫,网友:哥哥这是半夜起来照顾妹妹了吗!

公开课

父亲年龄越大孩子越不聪明?

无障碍浏览 进入关怀版
×