首页
学习
活动
专区
工具
TVP
发布

GitHub 网站移除 Jquery

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

结论

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180727G09WIL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券