javascript - หลังจากการตายของคอมโพเนนต์ Angular1 บางตัว ที่เหลือยังคงเหมือนเดิม?
ฉันแค่สงสัยอยากรู้ว่า มันเป็นอย่างเช่นหลังจากการเอาส่วนประกอบบางอย่างออกเช่น:
ส่วนประกอบอื่น ๆ ที่เหลือจะยังคงเหมือนเดิม เพราะไม่ได้ระบุไว้ในภาพด้านบน
ชอบ :
- บริการ
- เหตุการณ์ (กระจายสัญญาณ, ปล่อย, บน)
- บล็อกวิ่ง
- คงที่
- การตั้งค่า
- และอื่น ๆ อีกมากมาย
หวังว่าคำถามข้างต้นจะถูกต้อง หากเป็นเช่นนั้น โปรดให้แนวคิดเกี่ยวกับสิ่งที่ยังเหลืออยู่ เพื่อให้ฉันรู้สึกง่ายขึ้นในการเรียนรู้/ปรับตัวกับ Angular 2 ใหม่
ไทป์สคริปต์ :
ฉันเคยเห็นการเปลี่ยนแปลงในคลาสที่มุ่งเน้นบล็อกการเปลี่ยนแปลงใน TypeScript เช่น:
class MyComponent {
constructor() {
this.name = 'Max'
}
sayMyName() {
console.log('My name is', this.name)
}
}
นั่นหมายความว่าฟังก์ชันจัดการ DOM ที่ใช้กันทั่วไปเช่น
document.getElementBy- อ็อบเจ็กต์
window - และสิ่งอื่นๆ ก็จะเป็นแบบเดียวกันในระดับหนึ่งหรือไม่?
กรุณาให้ข้อมูลอ้างอิงหรือแนวคิดเกี่ยวกับการเปลี่ยนแปลงของ Typescript ว่ามากน้อยเพียงใด
คำตอบ #1
คำถาม 1:
การละเว้นระดับสูงยังคงเหมือนเดิม (ตัวควบคุม, คำสั่ง, บริการ) แต่รายละเอียดการใช้งานทั้งหมดเปลี่ยนไปเนื่องจากกรอบงานถูกเขียนใหม่ใน TypeScript
ตัวอย่างเช่น โมดูลของ Angular จะถูกยกเลิกเพื่อใช้ของ ES6 พื้นเมืองแทน ซึ่งหมายความว่า run block, constant และ config จะไม่เกี่ยวข้อง อย่างไรก็ตาม เนื่องจากพวกเขายังคงใช้ dependency injection อยู่ จึงต้องมีวิธีการกำหนดค่าบางอย่าง ดังนั้นสิ่งที่คุณสามารถทำได้ใน config และ run จะยังคงทำได้อยู่
คำถาม 2:
คุณอาจสับสนระหว่าง TypeScript กับ JavaScript แบบแรกมีไวยากรณ์แบบนั้นเสมอ (และเวอร์ชันถัดไปของ JavaScript (ES6/harmony) ก็จะมีในระดับหนึ่งเช่นกัน)
อย่างไรก็ตาม การเปลี่ยนภาษาจะไม่ส่งผลต่อวิธีการใช้เฟรมเวิร์กเนื่องจาก TypeScript ควรเป็นซูเปอร์เซตของ JavaScript ดังนั้น JavaScript ที่ถูกต้องส่วนใหญ่ก็ถูกต้องใน TypeScript ด้วยเช่นกัน คุณไม่จำเป็นต้องใช้ฟีเจอร์เฉพาะของ TypeScript หากคุณไม่ต้องการ
คำตอบ #2
ตามความเข้าใจของฉันเกี่ยวกับวิธีที่ Angular 2 กำลังรวมตัวกัน นี่คือวิธีที่ฉันเห็นชิ้นส่วนอื่น ๆ เข้ากัน
ข้อจำกัดความรับผิด
- ฉันไม่ใช่นักพัฒนาของโครงการนี้ แค่คนที่พยายามตามโครงการให้ทันขณะกำลังถูกพัฒนา
- สถานะปัจจุบันของ Angular 2 คืออัลฟา/ตัวอย่างสำหรับนักพัฒนา และสามารถ/จะมีการเปลี่ยนแปลงเมื่อการพัฒนาก้าวหน้า
ภาพรวม
เมื่อ Angular 1.* มีพัฒนาการและความเป็นผู้ใหญ่มากขึ้น มีแนวโน้มที่ชัดเจนในการใช้รูปแบบ JavaScript แบบดั้งเดิม (ดูที่ controllerAs, bindToController, ไม่มี controllers แบบ global) และโดยการปฏิบัติตามแนวทางนั้น โค้ดของคุณสำหรับ Angular 1.* จะใกล้เคียงกับ Angular 2 มากขึ้น อีกแนวทางหนึ่งที่จะช่วยคุณในการเตรียมตัวสำหรับ Angular 2 คือการคิดถึงแอปพลิเคชันของคุณในแนวคิดของคอมโพเนนต์ (directive + controller พร้อมบริการที่ถูกฉีดเข้าไป)
บริการ
นี่คือคลาสที่สามารถฉีดเข้าไปในคอมโพเนนต์ได้
เหตุการณ์ (กระจาย/ปล่อย)
นี่คือการใช้งาน pub/sub ที่อิงตามโมเดล $scope ที่สืบทอดมา ซึ่งจะไม่มีใน Angular 2 ดังนั้นจำเป็นต้องมีการใช้งานโมเดล eventing อื่น ฉันยังไม่เคยได้ยินเรื่องนี้ถูกพูดถึงจากทีม Angular ดังนั้นคุณต้องอดทน หรือตัดสินใจเลือกโมเดล pub/sub อื่นเพื่อนำไปใช้งาน
เรียกใช้งานบล็อก
ด้วย Angular 2 ที่มีพื้นฐานมาจากคอมโพเนนต์ เมื่อแอปเริ่มทำงาน จะมีความสัมพันธ์โดยตรงกับตัวสร้างของคอมโพเนนต์ราก (คอมโพเนนต์ที่ถูกบูตสแตรป)
ค่าคงที่
ค่าคงที่ใน Angular 1 เป็นเพียงค่าที่สามารถฉีดเข้าไปยังคอมโพเนนต์อื่น ๆ ไม่มีอะไรเปลี่ยนแปลงที่นี่ และค่าต่าง ๆ สามารถฉีดเข้าไปในคอมโพเนนต์ใน Angular 2 ได้เช่นกัน
การตั้งค่า
เมื่อระบบโมดูลของ Angular ถูกยกเลิกเพื่อใช้โมดูล ES6 แนวคิดของการกำหนดค่ (การกำหนดค่าค่าพื้นฐานสำหรับบริการ) สามารถทำได้ในตัวสร้างของบริการ นอกจากนี้ Angular 2 จะสนับสนุนแนวคิดของการโหลดส่วนประกอบเพิ่มเติมแบบ Lazy ดังนั้นการกำหนดค่าจึงสามารถทำได้ทั้งในภายหลังและเมื่อเริ่มต้นแอปพลิเคชัน
เอกสารอ้างอิง
- หน้าแรกโครงการ Angular 2 https://angular.io/
- วิดีโอ ng-conf https://www.youtube.com/user/ngconfvideos
- ตัวอย่างการทำงานรายการสิ่งที่ต้องทำของ Angular 2 https://www.youtube.com/watch?v=uD6Okha_Yj0
- angular 2 forms แนะนำ https://www.youtube.com/watch?v=4C4bmDOV5hk
- วิดีโอเริ่มต้น https://www.youtube.com/watch?v=HmWm21cCAXM
