Jquery 已死

772 阅读3分钟
原文链接: mp.weixin.qq.com

1 微软 GitHub 联姻

我们知道 GitHub 嫁给微软以后,GitHub 网页就出来了一个崭新的 Logo

这种神替换速度就是赤裸裸的告诉大家 GitHub 是我的了,言归正传吧

2 被遗弃的 Jquery

就在昨天 Mislav Marohnić 在 twitter 发表了如下信息

大概意思是说 GitHub 网站在重构的时候把 Jquery 从前端中去除了,并且没有使用任何框架去替代它「使用原生 JS」,是如何做的呢?

  • 使用 querySelectorAll 来查询 DOM 节点

  • 使用 fetch 来代替 ajax 

  • 事件处理使用的事件代理

  • 使用 polyfill 标准化了一些 DOM

  • 使用了众多的自定义元素

看过我 vue 网络的朋友都知道 Fetch 对浏览器支持不是很「IE压根不支持,我们来看一下」

其中红色表示不支持,绿色表示支持,我们可以看到 fetch 不支持 IE 等一些浏览器,fetch 是基于 XHR 封装的「什么是 XHR Vue 网络的时候说过,点击此处可以查看」,但是此处的 fetch 是 Github 根据 fetch 标准实现的一个 polyfill 「不是纯的 window.fetch」 ,它支持到 IE10+,如果还想兼容到 IE8+ 那么就要使用「Promise 的 polyfill,fetch 不支持 IE 就是由于 Promise 对 IE 支持的不友好」,我们可以看 fetch polyfill 的 介绍

3 GitHub 贡献几个源码

根据 muan「也是 GitHub 的名 web 开发者」发布的消息,GitHub 把 fetch(polyfill) 和 Delegated events、Custom Elements 也早都开源出去了「就是有了这些经验才去重构 GitHub 页面的」,如下图所示

地址分别是

Fetch(polyfill):https://github.com/github/fetch

Delegated events:https://github.com/dgraham/delegated-events

Custom Elements:https://github.com/search?q=topic%3Aweb-components+org%3Agithub

4 如何选择

早些时候听过一个哥们说过,Jquery 早已放在他们技术栈的底层了「也就是说不会再用了」,Jquery 确实把 JS 封装的非常简单好用,但是随着技术的发展,Jquery 正在逐渐退出它的历史舞台「现在主流的库都是以数据驱动,而 Jquery 是以事件驱动来操作 DOM 的」,像 Vue、React 这些 MVVM 框架 DOM 操作都让底层实现了,用户压根不用关心「用户唯一关心的就是数据,我们应该把重点放在业务和交互上,而不是去频繁去操作 DOM」

那么我们该如何选择呢?我们应该有拥抱新技术的心态,如果有新的项目或是新的模块开发「那么恭喜你」,那就直接上新的框架「不要再用 Jquery 了,AJAX 也不要用了,回调地域真是苦逼,直接上基于 Promise 的实现方式吧」,而对于老的项目已经在使用 Jquery 了「除非你有充足的重构时间,否则最好不要去动—重构兼容可能会导致很多 bug」

5 结论

还是那句话,离开业务和使用场景谈技术都是耍流氓,拥抱变化,根据现有的业务和产品选择适合自己的技术才是最重要的

更多文章等着你,欢迎关注我的公号

长按下图识别图中二维码或是扫描添加即可关注


公众号:TigerChain