AngularJS - ภาพรวม
AngularJS เป็นเว็บแอปพลิเคชันเฟรมเวิร์กแบบโอเพนซอร์ส ได้รับการพัฒนาครั้งแรกในปี 2009 โดย Misko Hevery และ Adam Abrons ปัจจุบันได้รับการดูแลโดย Google เวอร์ชันล่าสุดคือ 1.2.21
คำจำกัดความของ AngularJS ตามเอกสารอย่างเป็นทางการมีดังนี้ -
AngularJS เป็นกรอบโครงสร้างสำหรับเว็บแอปพลิเคชันแบบไดนามิก ช่วยให้คุณใช้ HTML เป็นภาษาเทมเพลตของคุณและช่วยให้คุณสามารถขยายไวยากรณ์ของ HTML เพื่อแสดงส่วนประกอบแอปพลิเคชันของคุณอย่างชัดเจนและรวบรัด การผูกข้อมูลและการแทรกการพึ่งพาช่วยขจัดโค้ดส่วนใหญ่ที่คุณต้องเขียนในปัจจุบัน และทั้งหมดนี้เกิดขึ้นภายในเบราว์เซอร์ทำให้เป็นพันธมิตรที่เหมาะกับเทคโนโลยีเซิร์ฟเวอร์ใด ๆ
คุณสมบัติทั่วไป
คุณสมบัติทั่วไปของ AngularJS มีดังต่อไปนี้ -
AngularJS เป็นเฟรมเวิร์กที่มีประสิทธิภาพที่สามารถสร้าง Rich Internet Applications (RIA)
AngularJS ให้ตัวเลือกแก่นักพัฒนาในการเขียนแอปพลิเคชันฝั่งไคลเอ็นต์โดยใช้ JavaScript ในรูปแบบ Model View Controller (MVC) ที่สะอาด
แอปพลิเคชันที่เขียนด้วย AngularJS เป็นไปตามข้อกำหนดข้ามเบราว์เซอร์ AngularJS จัดการโค้ด JavaScript ที่เหมาะสมกับแต่ละเบราว์เซอร์โดยอัตโนมัติ
AngularJS เป็นโอเพ่นซอร์สฟรีและใช้งานโดยนักพัฒนาหลายพันคนทั่วโลก ได้รับอนุญาตภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0
โดยรวมแล้ว AngularJS เป็นเฟรมเวิร์กสำหรับสร้างเว็บแอปพลิเคชันขนาดใหญ่ประสิทธิภาพสูงและดูแลรักษาง่าย
คุณสมบัติหลัก
คุณสมบัติหลักของ AngularJS มีดังนี้ -
Data-binding - เป็นการซิงโครไนซ์ข้อมูลระหว่างโมเดลและส่วนประกอบมุมมองโดยอัตโนมัติ
Scope- สิ่งเหล่านี้คือวัตถุที่อ้างถึงโมเดล พวกเขาทำหน้าที่เป็นกาวระหว่างตัวควบคุมและมุมมอง
Controller - นี่คือฟังก์ชัน JavaScript ที่เชื่อมโยงกับขอบเขตเฉพาะ
Services- AngularJS มาพร้อมกับบริการในตัวหลายอย่างเช่น $ http เพื่อสร้าง XMLHttpRequests สิ่งเหล่านี้เป็นวัตถุเดี่ยวที่สร้างอินสแตนซ์เพียงครั้งเดียวในแอป
Filters - สิ่งเหล่านี้เลือกชุดย่อยของรายการจากอาร์เรย์และส่งคืนอาร์เรย์ใหม่
Directives- Directives คือเครื่องหมายบนองค์ประกอบ DOM เช่นองค์ประกอบแอตทริบิวต์ css และอื่น ๆ สิ่งเหล่านี้สามารถใช้เพื่อสร้างแท็ก HTML ที่กำหนดเองซึ่งทำหน้าที่เป็นวิดเจ็ตที่กำหนดเองใหม่ AngularJS มีคำสั่งในตัวเช่น ngBind, ngModel เป็นต้น
Templates- นี่คือมุมมองที่แสดงผลพร้อมข้อมูลจากคอนโทรลเลอร์และโมเดล เหล่านี้สามารถเป็นไฟล์เดียว (เช่น index.html) หรือวิวหลายในหนึ่งหน้าใช้partials
Routing - เป็นแนวคิดในการเปลี่ยนมุมมอง
Model View Whatever- MVW เป็นรูปแบบการออกแบบสำหรับการแบ่งแอปพลิเคชันออกเป็นส่วนต่างๆที่เรียกว่า Model, View และ Controller ซึ่งแต่ละส่วนมีความรับผิดชอบที่แตกต่าง AngularJS ไม่ได้ใช้ MVC ในความหมายดั้งเดิม แต่เป็นสิ่งที่ใกล้เคียงกับ MVVM (Model-View-ViewModel) ทีม Angular JS เรียกมันอย่างขบขันว่า Model View Whatever
Deep Linking- การลิงก์ในรายละเอียดช่วยให้สามารถเข้ารหัสสถานะของแอปพลิเคชันใน URL เพื่อให้สามารถบุ๊กมาร์กได้ จากนั้นแอปพลิเคชันสามารถกู้คืนจาก URL ไปสู่สถานะเดียวกันได้
Dependency Injection - AngularJS มีระบบย่อยการฉีดแบบพึ่งพาในตัวที่ช่วยให้นักพัฒนาสามารถสร้างเข้าใจและทดสอบแอปพลิเคชันได้อย่างง่ายดาย
แนวคิด
แผนภาพต่อไปนี้แสดงให้เห็นถึงบางส่วนที่สำคัญของ AngularJS ซึ่งเราจะพูดถึงโดยละเอียดในบทต่อ ๆ ไป
ข้อดีของ AngularJS
ข้อดีของ AngularJS คือ -
มันให้ความสามารถในการสร้าง Single Page Application ด้วยวิธีที่สะอาดและดูแลรักษาได้
ให้ความสามารถในการผูกข้อมูลกับ HTML ดังนั้นจึงให้ประสบการณ์ที่หลากหลายและตอบสนองแก่ผู้ใช้
รหัส AngularJS เป็นหน่วยที่สามารถทดสอบได้
AngularJS ใช้การฉีดแบบพึ่งพาและใช้ประโยชน์จากการแยกข้อกังวล
AngularJS มีส่วนประกอบที่ใช้ซ้ำได้
ด้วย AngularJS นักพัฒนาสามารถใช้งานได้มากขึ้นด้วยรหัสสั้น ๆ
ใน AngularJS มุมมองเป็นเพจ html ที่บริสุทธิ์และคอนโทรลเลอร์ที่เขียนด้วย JavaScript จะทำการประมวลผลทางธุรกิจ
เหนือสิ่งอื่นใดแอปพลิเคชัน AngularJS สามารถทำงานได้บนเบราว์เซอร์และสมาร์ทโฟนที่สำคัญทั้งหมดรวมถึงโทรศัพท์ / แท็บเล็ตที่ใช้ Android และ iOS
ข้อเสียของ AngularJS
แม้ว่า AngularJS จะมาพร้อมกับข้อดีมากมาย แต่นี่คือประเด็นที่น่ากังวล -
Not Secure- เนื่องจากเป็นเพียงเฟรมเวิร์ก JavaScript เท่านั้นแอปพลิเคชันที่เขียนด้วย AngularJS จึงไม่ปลอดภัย การรับรองความถูกต้องและการอนุญาตฝั่งเซิร์ฟเวอร์จะต้องรักษาความปลอดภัยของแอปพลิเคชัน
Not degradable - หากผู้ใช้แอปพลิเคชันของคุณปิดการใช้งาน JavaScript จะไม่มีสิ่งใดปรากฏให้เห็นยกเว้นหน้าพื้นฐาน
AngularJS Directives
กรอบ AngularJS สามารถแบ่งออกเป็นสามส่วนใหญ่ ๆ -
ng-app - คำสั่งนี้กำหนดและเชื่อมโยงแอปพลิเคชัน AngularJS กับ HTML
ng-model - คำสั่งนี้ผูกค่าของข้อมูลแอปพลิเคชัน AngularJS กับตัวควบคุมอินพุต HTML
ng-bind - คำสั่งนี้จะผูกข้อมูลแอปพลิเคชัน AngularJS กับแท็ก HTML