ทำไมฉันถึงต้องใช้ Angular [ปิด]


20

จากแบบฝึกหัด Angular เบื้องต้นดูเหมือนว่าทุกอย่างที่ทำได้คือดึง JSON บางส่วนจาก API และแสดงผล นอกจากนี้ยังมีเวทย์มนตร์ผูกพันสองครั้ง

แต่ทำไมฉันถึงใช้มันแทนโซลูชันแบ็กเอนด์ (เช่น Rails) ที่สร้างมุมมองในแบ็กเอนด์และให้บริการกับผู้ใช้โดยมีทุกอย่างในที่แล้ว? กรณีการใช้งานคืออะไร?

คำตอบ:


26

TLDR;

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

เรื่องยาว

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

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

มีจุดที่ทุกสิ่งที่คุณต้องการคือเซิร์ฟเวอร์หน้าต้นขั้วที่โหลดแอปพลิเคชันที่ใช้จาวาสคริปต์อย่างสมบูรณ์ อาจเป็นตัวอย่างที่รู้จักกันดีที่สุดของกรณีการใช้งานประเภทที่ Angular ส่องสว่างจริง ๆ คือTrello (ใช้ Backbone ไม่ใช่ Angular แต่เป็นกรณีการใช้งานเดียวกัน) มีไซต์http://builtwith.angularjs.org/ซึ่งมีเว็บไซต์ตัวอย่างเพิ่มเติมที่ใช้ Angular

ดังนั้นคำตอบสั้น ๆ Angular ทำให้การสร้างส่วนต่อประสานผู้ใช้ที่มีความโต้ตอบสูงช่วยให้คุณแยก UI ของคุณออกเป็นส่วนประกอบได้ง่ายขึ้น


3
AngularJ sodes ไม่ได้ให้การแยกระหว่างลักษณะและความรู้สึกและตรรกะอย่างชัดเจน
rsman

13
@rsman มันชัดเจน จุดรวมของการเชื่อมโยงข้อมูลคือคุณไม่ได้เขียนโค้ด DOM-manipulation ทั้งกลุ่ม, angular ทำเพื่อคุณ, ดังนั้น, คุณกำหนดสิ่งที่ดูเหมือนว่า, คุณกำหนดวิธีการโต้ตอบของคุณทำงาน ฯลฯ แต่คุณหลีกเลี่ยง ต้องจับคู่ทั้งสองเข้าด้วยกันพร้อมกับรหัสที่จะปรับปรุงสิ่งที่ดูเหมือนจากรหัสที่จัดการการโต้ตอบ
guysherman

3
Trello ใช้ในตัวอย่างไม่ได้ใช้เชิงมุมblog.fogcreek.com/the-trello-tech-stack
JAMESSTONEco

1
@amesstoneco แน่นอนมันไม่ได้ฉันเพียงแค่ใช้ Trello เป็นตัวอย่างของแอปพลิเคชัน JS ฝั่งไคลเอ็นต์อย่างหมดจด มันเป็นหนึ่งในคนแรกที่ทำได้ดี
guysherman

7

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

ตัวอย่างเช่นในโครงการปัจจุบันเรามีมุมมองที่ใช้โค้ด JavaScript หลายร้อยบรรทัดเพื่อสร้างประสบการณ์การใช้งานที่ตอบสนองต่อผู้ใช้ ถึงแม้ว่าหน้านั้นจะค่อนข้างบั๊กและบำรุงรักษายากมาก เราเริ่มมองหาตัวเลือกที่ดีกว่าและดู backbone.js และ knockout.js ในที่สุดเราก็ลอง Angular เราสามารถสร้างหน้าที่ตอบสนองและบำรุงรักษาได้ดียิ่งขึ้นโดยมีโค้ดเพียงไม่กี่บรรทัด Gone เป็นรหัสการจัดการ DOM ทั้งหมด Gone คือการสร้างมุมมองแบ็กเอนด์ที่ไม่น่าดูซึ่งต้องถูกดึงออกมาและแทรกในตำแหน่งที่ถูกต้อง Gone เป็นรหัสทั้งหมดที่เขียนขึ้นเพื่อรักษาโมเดลและมุมมองที่ซิงค์ไว้ จากประสบการณ์ดังกล่าวการตัดสินใจย้ายไปที่แองกูลาร์จึงง่ายขึ้นและจนถึงตอนนี้เรายังไม่เสียใจ


"Gone เป็นรหัสการจัดการ DOM ทั้งหมด" นี่คือสิ่งที่สำคัญที่สุดในความคิดของฉัน
Bent

5

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

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

ที่กล่าวมาคำถามของคุณดูเหมือนจะเกี่ยวกับกรณีการใช้งานของ SPAs มากกว่า Angular เอง

กรณีการใช้งานของแอพพลิเคชั่นหน้าเดียวสำหรับการใช้งานเว็บแอพที่มี UI / UX ที่แข็งแกร่งและความรู้สึกโดยรวมของแอพพลิเคชั่นที่ดีขึ้น การไม่โหลดหน้าเว็บของคุณซ้ำช่วยให้คุณประหยัดเวลาในการแสดงผลและแบนด์วิดธ์ คุณยังแยกข้อมูลและงานนำเสนอที่ยอดเยี่ยม ใบสมัครของคุณกลายเป็น:

  • ไฟล์คงที่รวมถึง index.html ของคุณ
  • REST API ที่ให้บริการข้อมูล
  • แอปพลิเคชั่นส่วนหน้าขับเคลื่อนด้วยข้อมูล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.