AngularJS แตกต่างจาก jQuery อย่างไร


388

ฉันเพียงรู้ห้องสมุด js หนึ่งและนั่นคือjQuery
แต่ตัวแปลงสัญญาณอื่นของฉันในกลุ่มกำลังเปลี่ยนAngularJSเป็นไลบรารีเริ่มต้นในโครงการใหม่

ฉันไม่รู้อะไรเลยเกี่ยวกับเรื่องนี้ มันแตกต่างจาก jQuery อย่างไร
ฉันมีชุดฟังก์ชั่นสำหรับงานที่คล้ายกันใน jQuery เรียบร้อยแล้ว ฉันยังสามารถใช้ jQuery กับ AngularJS ได้ไหม

คำตอบ:


414
  1. ในขณะที่เชิงมุม 1 กรอบเชิงมุม 2 เป็นแพลตฟอร์ม ( อ้างอิง )

สำหรับนักพัฒนา Angular2 มีคุณสมบัติบางอย่างที่นอกเหนือจากการแสดงข้อมูลบนหน้าจอ ตัวอย่างเช่นการใช้เครื่องมือ angular2 cli สามารถช่วยคุณ "รวบรวมล่วงหน้า" รหัสของคุณและสร้างรหัสจาวาสคริปต์ที่จำเป็น ( เขย่าต้นไม้ ) เพื่อลดขนาดการดาวน์โหลดลงเหลือ 35Kish

  1. Angular2 จำลองเงา DOM ( อ้างอิง )

นี่เป็นการเปิดประตูสำหรับการเรนเดอร์เซิร์ฟเวอร์ที่สามารถแก้ไขปัญหา SEO และทำงานกับ Nativescript ฯลฯ ที่ไม่ทำงานบนเบราว์เซอร์

AngularJS เป็นกรอบ มันมีคุณสมบัติดังต่อไปนี้

  1. การผูกข้อมูลแบบสองทาง
  2. รูปแบบ MVW (MVC-ish)
  3. แบบ
  4. คำสั่งที่กำหนดเอง (ส่วนประกอบที่นำมาใช้ใหม่, มาร์กอัปที่กำหนดเอง)
  5. REST ง่าย
  6. Deep Linking (ตั้งค่าลิงค์สำหรับหน้าแบบไดนามิกใด ๆ )
  7. การตรวจสอบแบบฟอร์ม
  8. การสื่อสารเซิร์ฟเวอร์
  9. การ จำกัด
  10. ฉีดพึ่งพา
  11. สภาพแวดล้อมการทดสอบเต็มรูปแบบ (ทั้งหน่วย e2e)

ตรวจสอบงานนำเสนอนี้นี้และแนะนำที่ดีนี้

อย่าลืมอ่านอย่างเป็นทางการ คู่มือผู้พัฒนา

หรือเรียนรู้จากสิ่งที่ยอดเยี่ยมเหล่านี้ บทเรียนวิดีโอที่ยอดเยี่ยม

หากคุณต้องการดูวิดีโอแนะนำเพิ่มเติมลองดูโพสต์นี้ ชุดบทเรียน AngularJS ที่ดีที่สุด 60+รายการ

คุณสามารถใช้ jQuery กับ AngularJS ได้โดยไม่มีปัญหาใด ๆ

ในความเป็นจริง AngularJS ใช้ jQuery lite ซึ่งเป็นเครื่องมือที่ยอดเยี่ยม

จากคำถามที่พบบ่อย

Angular ใช้ไลบรารี jQuery หรือไม่

ใช่แองกูลาร์สามารถใช้ jQuery หากมีอยู่ในแอปของคุณเมื่อแอปพลิเคชันกำลังบู๊ต หาก jQuery ไม่มีอยู่ในพา ธ สคริปต์ของคุณ Angular จะกลับไปใช้ชุดย่อยของ jQuery ที่เราเรียกว่า jQLite

อย่างไรก็ตามอย่าพยายามใช้ jQuery เพื่อแก้ไข DOM ในตัวควบคุม AngularJS ให้ทำตามคำสั่งของคุณ

ปรับปรุง:

Angular2 เปิดตัว นี่คือรายการทรัพยากรที่ยอดเยี่ยมสำหรับผู้เริ่มต้น


8
ฉันต้องพัฒนาแอปพลิเคชั่นเต็มรูปแบบใน Angular js หรือฉันสามารถใช้งานได้ในไม่กี่หน้าและในไม่กี่ apges ฉันใช้ jQuery ง่าย ๆ
Mirage

8
+1 คำตอบที่ดี ฉันจะบอกว่า Angular เข้าใกล้รูปแบบ MVVM มากขึ้น
GFoley83

8
ฉันค่อนข้างแน่ใจว่า Angular เป็นMVW
iConnor

2
เป็นเวลาหลายปีใกล้กับ MVC แต่ตอนนี้การแยกตัวประกอบและการปรับปรุง API ก็ใกล้เคียงกับ MVVM ใน Angular $ scope ทำงานเหมือน VM (ดู Model)
อยู่ยงคงกระพัน

14
สำหรับการใด ๆ ในอนาคตคนสงสัย (เป็นผม) MVW == Model-View-อะไรก็ตามในขณะที่" ม. odel- วี iew- W hatever งานสำหรับคุณ" ในคำอื่น ๆMV *
David Frye

40

ฉันต้องการเพิ่มบางสิ่งเกี่ยวกับAngularJSกับjQueryจากมุมมองของนักพัฒนา

ใน AngularJS คุณจะต้องมีมุมมองที่มีโครงสร้างและวิธีการที่จะทำให้สำเร็จ มันแทบจะไม่ติดตามแฟชั่นเชิงเส้นเพื่อทำงานให้เสร็จสมบูรณ์ แต่การแลกเปลี่ยนระหว่างวัตถุต่าง ๆ จะดูแลคำร้องขอและการกระทำซึ่งหลังจากนั้นจึงจำเป็นเนื่องจากมุมเป็นMVC-Basedกรอบนอกจากนี้ยังต้องการพิมพ์เขียวทั่วไปอย่างน้อยของแอปพลิเคชั่นที่ผ่านการสรุปเนื่องจากการเข้ารหัสขึ้นอยู่กับว่าคุณต้องการให้การโต้ตอบดำเนินการอย่างไร

jQuery เหมือนฟรีบทกวีคุณเขียนบรรทัดและรักษาความสัมพันธ์และโมเมนตัมที่เหมาะสมเพื่อให้งานของคุณสำเร็จ

แม้ว่าใน Angular JS คุณควรปฏิบัติตามกฎบางอย่างรวมทั้งรักษาโมเมนตัมและความสัมพันธ์ที่เหมาะสมบางทีมันอาจเป็นเหมือนโคลงสเปนเซอร์คลาสสิก (กวีคลาสสิกที่มีชื่อเสียง) ซึ่งเป็นบทกวีที่มีโครงสร้างและเชื่อมโยงกับกฎหลายข้อ

เมื่อเทียบกับ AngularJS jQuery เป็นเหมือนชุดของรหัสและฟังก์ชั่น (ซึ่งเป็นที่กล่าวถึงแล้วยอดเยี่ยมสำหรับการจัดการ DOM และความสำเร็จอย่างรวดเร็ว) ในขณะที่ AngularJS เป็นกรอบงานจริงที่ช่วยให้นักพัฒนาสามารถสร้างเว็บองค์กรได้ - แอพพลิเคชั่นที่รวบรวมข้อมูลจำนวนมากและแลกเปลี่ยนภายในการจัดเส้นทางและการจัดการที่ยอดเยี่ยม

นอกจากนี้ AngularJS ไม่มีการพึ่งพา jQueryเพื่อทำงานให้เสร็จสมบูรณ์ มันมีคุณสมบัติที่ยอดเยี่ยมสองอย่างที่ไม่พบใน jQuery ในแง่ใด ๆ :

1- Angular JS สอนวิธีการใช้รหัสและบรรลุเป้าหมายไม่ใช่แค่บรรลุเป้าหมายด้วยวิธีการใด ๆ ควรกล่าวถึงว่า AngularJS ใช้ประโยชน์จากแกนกลางและหัวใจของ Javascripts อย่างเต็มที่และปูทางให้คุณสามารถรวมในแอพของคุณเทคนิคต่าง ๆ เช่น DI (การพึ่งพาการฉีด) ในการทำงานกับ angularJS คุณควร (หรือต้อง) เรียนรู้เทคนิคการยกระดับโค้ดด้วย Javascript

2- Angular JS มีอิสระเต็มที่ในการจัดการคำสั่งและจัดโครงสร้างแอปของคุณ จากนั้นคุณอาจอ้างว่า jQuery สามารถทำเช่นเดียวกัน (ความเป็นอิสระ) แต่จริง ๆ แล้ว AngularJS ดังที่กล่าวมาหลายครั้งภายในบรรทัดด้านบนมีความเป็นอิสระในรูปแบบ MVC-based ที่ยอดเยี่ยมที่สุด

ข้อสังเกตสุดท้ายคือไม่มีสงครามชื่อเพราะมันเป็นการรบกวนที่จะลำเอียงหรือเป็นอัตวิสัย ขนาดและความยิ่งใหญ่ของ jQuery ได้รับการพิสูจน์แล้ว แต่การใช้งานและข้อ จำกัด (ของกรอบหรือซอฟต์แวร์ใด ๆ ) เป็นข้อกังวลของการอภิปรายและการอภิปรายที่คล้ายกัน

ปรับปรุง:

การใช้ AngularJS นั้นมีความสำคัญเนื่องจากมีราคาแพงในแง่ของการใช้งาน แต่พบว่าฐานที่แข็งแกร่งสำหรับการขยายตัวในอนาคตการเปลี่ยนแปลงและการบำรุงรักษาแอปพลิเคชัน AngularJS สำหรับโลกใหม่ของเว็บ มันมีเป้าหมายไปที่การสร้างแอปพลิเคชั่นที่มีการใช้ทรัพยากรน้อยที่สุด (โหลดเฉพาะทรัพยากรที่จำเป็นจากเซิร์ฟเวอร์) เวลาตอบสนองที่รวดเร็วและการบำรุงรักษาในระดับสูงและความสามารถในการยืดขยายที่ล้อมรอบระบบโครงสร้าง


"ในการทำงานกับ angularJS คุณควร (หรือต้อง) เรียนรู้เทคนิคการยกระดับการเข้ารหัสด้วย Javascript เพิ่มเติม" - โปรดให้ฉันดูสิ่งที่คุณหมายถึงเทคนิคการยกระดับ?
antew

@MostafaTalebi ฉันแค่ล้อเล่น แต่ไม่ได้รับส่วนนั้นจริงๆ "JavaScript เป็นแนวคิดมากกว่าหรือไม่" สิ่งนี้หมายความว่า?? คุณอธิบายเพิ่มเติมได้ไหม ehh อยู่ที่นั่นแล้วเราได้รับการติดต่อ?
azerafati

ฉันหมายถึงมันเป็นสคริปต์ :)))
Mostafa Talebi

ฉันผสมสิ่งหนึ่ง! ตัวอย่างเช่นเราใช้ php สำหรับฝั่งเซิร์ฟเวอร์และเราใช้กรอบงานของเราตามแนวคิด MVC และในแม่แบบที่เราใช้จาวาสคริปต์ที่เราใช้ Angular js ด้วยดังนั้นที่นี่ angular js MVC ไม่มีประโยชน์ใช่ไหม?
Farhad

28

AngularJS: AngularJS สำหรับการพัฒนาเว็บแอปพลิเคชั่นจำนวนมาก AngularJS สามารถใช้ jQuery หากมีอยู่ในเว็บแอปเมื่อแอปพลิเคชันถูกบูท หากไม่มีอยู่ในเส้นทางของสคริปต์ AngularJS จะกลับไปใช้งานชุดย่อยของ jQuery ของตนเอง

JQuery: jQuery เป็นห้องสมุด JavaScript ขนาดเล็กเร็วและมีคุณสมบัติหลากหลาย มันทำให้สิ่งต่าง ๆ เช่นการข้ามผ่านเอกสาร HTML และการจัดการการจัดการเหตุการณ์ภาพเคลื่อนไหวและ Ajax ง่ายกว่ามาก jQuery ช่วยลดความซับซ้อนของสิ่งต่าง ๆ จาก JavaScript เช่นการโทร AJAX และการจัดการ DOM

อ่านรายละเอียดเพิ่มเติมได้ที่นี่: angularjs-vs-jquery


20

ฉันคิดว่านี่เป็นแผนภูมิที่ดีมากที่อธิบายความแตกต่างในระยะสั้น ภาพรวมอย่างรวดเร็วที่แสดงให้เห็นถึงความแตกต่างส่วนใหญ่

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งหนึ่งที่ฉันต้องการเพิ่มคือAngularJSสามารถทำตามรูปแบบการออกแบบMVVMในขณะที่jQueryไม่เป็นไปตามรูปแบบ Object Oriented มาตรฐานใด ๆ


12

พวกเขาทำงานในระดับต่าง ๆ

วิธีที่ง่ายที่สุดเพื่อดูความแตกต่างจากมุมมองเริ่มต้นคือว่าjQueryเป็นหลักนามธรรมของ JavaScript ดังนั้นวิธีที่เราออกแบบหน้าสำหรับจาวาสคริปต์จะสวยมากวิธีการที่เราจะทำเพื่อjQuery เริ่มต้นด้วย DOM จากนั้นสร้างเลเยอร์พฤติกรรมที่ด้านบน ไม่ให้มีAngular.Js กระบวนการเริ่มต้นจากพื้นดินจริง ๆ ดังนั้นผลลัพธ์ที่ได้คือมุมมองที่ต้องการ

ด้วยjQueryคุณใช้วิธีจัดการกับAngular.Jsคุณสร้างเว็บแอปพลิเคชันทั้งหมด


jQueryถูกสร้างขึ้นเพื่อแยกแยะความแตกต่างของเบราว์เซอร์ต่างๆและทำงานกับ DOM โดยไม่ต้องเพิ่มการตรวจสอบ IE6 เป็นต้น เมื่อเวลาผ่านไปมันพัฒนา API ที่ดีและมีประสิทธิภาพซึ่งช่วยให้เราสามารถทำสิ่งต่างๆมากมาย แต่ที่สำคัญคือมันมีไว้สำหรับจัดการกับ DOM การค้นหาองค์ประกอบการเปลี่ยน UI และอื่น ๆ คิดว่ามันทำงานโดยตรงกับถั่วและสลักเกลียว

Angular.Jsถูกสร้างเป็นเลเยอร์บนjQueryเพื่อเพิ่มแนวคิดMVCให้กับวิศวกรรมส่วนหน้า แทนที่จะให้ API ของคุณทำงานกับ DOM Angular.Jsจะให้ข้อมูลที่ผูกมัดการสร้างเท็มเพลตส่วนประกอบที่กำหนดเอง (คล้ายกับjQuery UIแต่เป็นการประกาศแทนที่จะเรียกผ่าน JS) และอีกมากมาย คิดว่ามันทำงานในระดับที่สูงขึ้นด้วยส่วนประกอบที่คุณสามารถเชื่อมต่อเข้าด้วยกันแทนที่จะเป็นระดับน็อตและสลักเกลียวโดยตรง

นอกจากนี้ , Angular.Jsช่วยให้คุณมีโครงสร้างและแนวความคิดที่นำไปใช้ในโครงการต่างๆเช่นควบคุม, บริการและ Directives jQueryสามารถใช้งานได้หลายวิธี (gazillion) ในการทำสิ่งเดียวกัน โชคดีที่มันมีน้อยกว่ากับAngular.Jsซึ่งทำให้ง่ายต่อการเข้าและออกจากโครงการ มันเป็นวิธีที่มีเหตุผลสำหรับหลาย ๆ คนที่จะมีส่วนร่วมในโครงการเดียวกันโดยไม่ต้องเรียนรู้ระบบใหม่ตั้งแต่ต้น


การเปรียบเทียบสั้น ๆ สามารถเป็น -

jQuery

  • สามารถใช้งานได้ง่ายโดยผู้ที่มีความรู้ที่ถูกต้องเกี่ยวกับตัวเลือก CSS
  • มันเป็นห้องสมุดที่ใช้สำหรับการจัดการ DOM
  • ไม่มีส่วนเกี่ยวข้องกับโมเดล
  • จัดการเนื้อหาของเว็บเพจได้อย่างง่ายดาย
  • ใช้สไตล์เพื่อทำให้ UI น่าสนใจยิ่งขึ้น
  • การสำรวจเส้นทาง DOM ง่าย
  • เอฟเฟกต์และภาพเคลื่อนไหว
  • ง่ายต่อการโทร AJAX และ
  • การใช้งานยูทิลิตี้
  • ไม่มีคุณสมบัติการรวมสองทาง
  • ซับซ้อนและยากที่จะรักษาเมื่อขนาดของโครงการเพิ่มขึ้น
  • บางครั้งคุณต้องเขียนโค้ดเพิ่มเติมเพื่อให้ได้ฟังก์ชันการทำงานเช่นเดียวกับในAngular.Js

Angular.Js

  • มันเป็นกรอบ MVVM
  • ใช้สำหรับสร้าง SPA (แอปพลิเคชันหน้าเดียว)
  • มันมีคุณสมบัติที่สำคัญเช่นการกำหนดเส้นทาง, คำสั่ง, การผูกข้อมูลแบบสองทาง, รุ่น, การฉีดพึ่งพา, การทดสอบหน่วย ฯลฯ
  • เป็นแบบแยกส่วน
  • คงไว้ได้เมื่อขนาดโครงการเพิ่มขึ้น
  • เร็ว
  • การเชื่อมต่อข้อมูลแบบสองทางใช้รูปแบบ MVC ที่เป็นมิตร
  • การเชื่อมโยงลึก
  • templating
  • แบบฟอร์มบิลด์อิน
  • ฉีดพึ่งพา
  • การ จำกัด
  • สภาพแวดล้อมการทดสอบเต็มรูปแบบ
  • การสื่อสารเซิร์ฟเวอร์

และอีกมากมาย

ป้อนคำอธิบายรูปภาพที่นี่

คิดว่านี่จะช่วยได้

พบมากขึ้น -


3

Jquery: -

jQuery is a lightweight and feature-rich JavaScript Library that helps web developers
by simplifying the usage of client-side scripting for web applications using JavaScript.
It extensively simplifies using JavaScript on a website and its lightweight as well as fast.

So, using jQuery, we can:

easily manipulate the contents of a webpage
apply styles to make UI more attractive
easy DOM traversal
effects and animation
simple to make AJAX calls and
utilities and much more 

AngularJS: -

AngularJS is a product by none other the Search Engine Giant Google and its an open source
MVC-based framework(considered to be the best and only next generation framework). AngularJS
is a great tool for building highly rich client-side web applications.

As being a framework, it dictates us to follow some rules and a structured approach. Its
not just a JavaScript library but a framework that is perfectly designed (framework tools
are designed to work together in a truly interconnected way).

In comparison of features jQuery Vs AngularJS, AngularJS simply offers more features:

Two-Way data binding
REST friendly
MVC-based Pattern
Deep Linking
Template
Form Validation
Dependency Injection
Localization
Full Testing Environment
Server Communication
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.