>웹 프론트엔드 >JS 튜토리얼 >지금도 jQuery를 사용하는 이유는 무엇입니까? 이유분석

지금도 jQuery를 사용하는 이유는 무엇입니까? 이유분석

青灯夜游
青灯夜游앞으로
2023-04-14 15:15:512292검색

지금도 jQuery를 사용하는 이유는 무엇입니까? 이유분석

통계에 따르면 전 세계 웹사이트에서 jQuery의 사용률은 여전히 ​​높습니다. 그러나 웹 기술의 현대화로 인해 jQuery가 소외되었다는 것은 부인할 수 없는 사실이며, 많은 사람들은 jQuery가 시대에 뒤떨어져 더 이상 사용을 고려할 필요가 없다고 직접적으로 믿고 있습니다. 이런 사람들은 jQuery를 거의 사용하지 않을 수도 있고, jQuery를 사용하지 않더라도 여전히 논의의 여지가 있습니다.

먼저 jQuery는 최신 프런트엔드 UI 개발에 있어서 이전의 장점을 잃었습니다. 웹 표준이 성숙해짐에 따라 호환성과 일관성을 너무 많이 고려할 필요가 없으며 DOM 작업 API도 교체되었습니다. UI 기능 개발을 선언적으로 자동화할 수 있는 새로운 기술 시장(예: MVVM)이 등장했습니다.

실제로 도구 사용법을 배울지(새 프로젝트에서 사용하기 위해) 고려해야 할 요소가 많이 있습니다. jQuery에 관한 한, 아직 배우고 사용할 수 있는 여지가 있다고 생각합니다.

사용

상업 프로젝트를 위한 기술 스택을 선택할 때 투입 비용과 수익률을 모두 고려해야 합니다. jQuery 사용을 반대하는 사람들은 일반적으로 jQuery가 시대에 뒤떨어져 배워도 사용하지 않게 될 것을 걱정하고, 개발 효율성에도 의문을 제기합니다. 모든 기술은 쓸모없게 되기 때문에 예측 가능한 프로젝트에서는 기술이 더 이상 사용되지 않는지 여부를 고려해야 할 주요 요소가 아닙니다. 주요 고려 사항은 학습, 개발, 유지 관리 비용과 수익률입니다.

모든 도구에는 학습 비용과 사용 적용 가능성이 있습니다. 네이티브 DOM과 React의 학습 비용은 낮지 않으며 고유한 적용 범위도 있습니다.

  • 기본적으로 기본 DOM API는 보편적이어야 하며 DOM 작업은 상대적으로 원시적입니다.
  • MVVM은 실제로 상태 업데이트 UI에만 적용 가능하며 애니메이션 및 창 작업과 같은 일부 미묘한 DOM 작업에는 적용할 수 없습니다

실제로 jQuery는 DOM 작업을 위한 도구 라이브러리입니다. 기본 작업은 매우 원시적이고 React의 추상화는 모든 대화형 기능에 적용되지 않기 때문에 개발 효율성을 높이기 위해 일부 사용자 정의 도구 라이브러리가 있어야 합니다.

jQuery 사용 여부는 프로젝트의 성격과 특정 개발 작업에 따라 다릅니다. 현재로서는 데이터 상호 작용 기능이 거의 없는 일부 중소 규모 프로젝트의 경우 jQuery를 사용하면 투자 수익률이 좋을 것입니다.

Learning

사용의 관점과 더불어 학습의 관점에서도 jQuery 사용법과 소스코드를 공부하는 것은 JS 레벨과 프론트엔드 레벨 향상에 여전히 도움이 된다고 생각합니다.

Atypic은 여전히 ​​jQurey를 사용해야 하는 6가지 이유가 있다고 믿습니다

다음은 Atypic 팀이 요약한 jQuery를 사용하는 몇 가지 이유

첫째, jQurey의 DOM 노드 선택기는 상대적으로 강력합니다.

이제 기본 querySelector도 CSS 선택기를 사용하지만 jQurey는 CSS 표준보다 더 "고급"입니다. 소위 고급이란 특정 노드 쿼리 작업에 더 직접적이고 편리하다는 것을 의미합니다. 이러한 부분 선택기 구문은 CSS 표준에 포함되지 않습니다. 예: 의사 클래스 :visible: :visible

$('a[href^="http://"]:visible')

这个查询 是选择 所有前缀是 http:// 这个不安全协议名,且可见的a

$('a[href^="http://"]').addClass(‘insecure').attr('target', '_blank');

이 쿼리는 접두사가 ​​http://이고 표시되는 안전하지 않은 프로토콜 이름을 모두 선택합니다. a 태그입니다. <p></p>이러한 고급 쿼리가 많으면 기본 쿼리가 이를 충족할 수 없습니다(많은 수의 기본 작업을 작성해야 함). jQuery가 없으면 직접 캡슐화해야 합니다. 🎜<h3 data-id="heading-4">第二,jQurey 支持链式语法,可将多个DOM操作写成一句<a href="https://www.php.cn/link/9bccc2a2179ce6e52f17bb831bc4ac1e" target="_blank" title="https://nakeman.cn/blog/reasons-why-we-still-use-jquery/#%E7%AC%AC%E4%BA%8Cjqurey-%E6%94%AF%E6%8C%81%E9%93%BE%E5%BC%8F%E8%AF%AD%E6%B3%95%E5%8F%AF%E5%B0%86%E5%A4%9A%E4%B8%AAdom%E6%93%8D%E4%BD%9C%E5%86%99%E6%88%90%E4%B8%80%E5%8F%A5" ref="nofollow noopener noreferrer"></a> </h3> <p>jQurey构造函数(<code>$())创建并返回一个 jquery对象,这个对象实例的所有 DOM 操作方法 都会修改当前实例后返回它(新的修改过后jquery实例)注1,这样,多个 DOM操作 就可以连写在一起,这就是有名的 链式语法。例如

$(&#39;a[href^="http://"]&#39;).addClass(‘insecure&#39;).attr(&#39;target&#39;, &#39;_blank&#39;);

以上语句 选中的DOM节点 执行了两次操作:添加样式类(insecure)和属性(target)。如果用原生 得这么写:

 const insecure_links = document.querySelector(‘a[href^=“http://“]’);
  insecure_links.classList.add(‘insecure’);
  insecure_links.addAttribute(’target’, ‘_blank’);

这里比较明显的看出jQuery的优势。

第三,jQurey支持自动批量处理节点数组,语法更简洁

jQuery对象的DOM操作方法默认是批量处理,无论是你选一个或是多个;但是如果是 多个,原生必须使用 querySelectorAll,并且选中后还要手动循环处理每个节点:

  const insecure_links = document.querySelectorAll(‘a[href^=http://“]’);
  for (let i = 0; i < insecure_links.length; i++) {
      insecure_links[i].classList.add(‘insecure’);
      insecure_links[i].addAttribute(’target’, ‘_blank’);
  }

无论是一个 还是多个,jQuery 都是一条语句(没变化):

$(&#39;a[href^="http://"]&#39;).addClass(&#39;insecure&#39;).attr(&#39;target&#39;, &#39;_blank&#39;);

jQuery 一个中间变量都不用,代码简洁易读,这就是效率。

第四,浏览器无关

现代浏览器普及率已经相当不错,但不绝对,且如果你有老项目需要维护,目前还是有学用jQuery的必要。如果你想用最新技术,又不得不维护兼容性,则得自己处理兼容问题,这可能不比直接使用 jQuery 更有效率。尤其是 AJAX 和 事件检测 这两个 兼容问题。

第五,丰富的插件库

大家都很喜欢 jQuery的一个点,是它有很多 非常有用 的插件。这些插件 不但多样,且成熟。一个典型例子就 是轮播插件(carousel)。不使用插件,要我们自己写一个,我们得花一到两个工作日,轮播展示功能 很复杂。

使用jQuery,则有多种 轮播插件可选择,灵活且成熟,可满足任何 轮播展示的需求。

小结

以上理由都为了——开发者效率,而效率要靠专注,需要抽象来维护一个较小的工作环境,忽略不必要的细节。jQuery 的抽象 是有效率的。

不过,就是因jQuery是有抽象的,也作为一种依赖是有大小的,所以,会有性能(运行和加载)损耗。这些都是 项目成功 的可能因素 。

原文地址:https://nakeman.cn/blog/reasons-why-we-still-use-jquery/%EF%BC%89

更多编程相关知识,请访问:编程教学!!

위 내용은 지금도 jQuery를 사용하는 이유는 무엇입니까? 이유분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제