前端技术Web前端之路让前端飞

是时候和Jquery说再见了吗?

2017-09-25  本文已影响96人  Cherry9507
bacImg.jpg

很显然,这是一个问题,点进来的人肯定都想寻找答案,但是我没有,我只知道H5新API能够替代部分jQuery,但要完全代替jquery,目前还不行。
下文中为了区分jquery和新api,jquery变量名为$elem,原生为elem

从页面删除一个元素

var $elem = $(".ClassName") //选中元素
$elem.remove(); //删除元素
var elem = document.querySelector(".ClassName"); //选中元素
elem.remove() //删除元素

插入一个元素

$elem.prepend($someOtherElem);
elem.prepend(someOtherElem);

在制定元素前插入内容

$elem.before($someOtherElem);
elem.before(someOtherElem);

替换元素

$elem.replaceWith($someOtherElem);
elem.replaceWith(someOtherElem);

找到最近的一个元素

$elem.closest("div");

浏览器新api

elem.closest("div");

隐藏一个元素

$elem.fadeIn()

为了使动画更自然,通过CSS配合js,可以做一个简单的过渡渐隐渐显的效果。

.thingy {
  display: none;
  opacity: 0;
  transition: .8s;
}
elem.style.display = "block";
requestAnimationFrame(() => elem.style.opacity = 1);

Ajax

jQuery一个关键的卖点就是它的Ajax方法,jQuery把XMLHttpRequest进行了很好的封装,提供了优雅的Ajax方法,使用起来也确实非常方便:

$.ajax('https://some.url', {
  success: (data) => { /* do stuff with the data */ }
});

当然现在浏览器提供fetch API来代替XMLHttpRequest,并且现在所有的浏览器都支持它。

fetch('https://some.url')
  .then(response => response.json())
  .then(data => {
    // do stuff with the data
  });

当然,fecth方法可能没有想象中的那么简单。这一点其实ajax还没有被超越。
当然,我们如果要想更加的易于使用它,那可以借助与一些第三方的封装好的微型的类库...

Axios是一个非常流行的专门用来进行Ajax操作的库。非常轻量,它只专注与一件事即Ajax。虽然它们不会像jQuery一样被大规模的测试使用,但是它们确实为替代jQuery提供了可代替的选择。

虽然,按现在浏览器技术的发展,使用它们提供的DOM操作方法完全可以应付web开发工作!但还是有很多的顾虑,比如各个浏览器厂商支持程度不一样,很多的开发者为了保险起见,还是觉得使用jQuery更安全一些。大多数时候,你完全不用顾虑这么多,尽管用就是了,很多的时候只要在你的页面中引用一个 polyfill就能很好的处理那些不兼容新方法的浏览器。

只需要引入这个简单的脚步,就可以处理任何兼容问题。详细可以去它的官网看看polyfill.io

当然我并不是一个jQuery反对者。现在依然还有很多非常棒的开发者选择使用jQuery。如果你已经习惯了使用它,当然可以继续使用它。现在很多的企业在招聘的时候,仍然把它作为一个必备的技能要求。不过,微软宣布了一个消息,Internet Explorer 11将是IE浏览器的最后一个版本,一旦IE退出了web的舞台,那么jQuery也可能随着IE的消亡也会推出历史舞台。到时候,jQuery可能就真多没有存在的必要了。

本文借鉴转摘自掘金 原文地址:https://juejin.im/entry/59c85a376fb9a00a6974ff2c?utm_source=gold_browser_extension

上一篇 下一篇

猜你喜欢

热点阅读