ค้นหาเว็บไซต์

javascript - หลังจากการตายของคอมโพเนนต์ Angular1 บางตัว ที่เหลือยังคงเหมือนเดิม?


ฉันแค่สงสัยอยากรู้ว่า มันเป็นอย่างเช่นหลังจากการเอาส่วนประกอบบางอย่างออกเช่น:

ส่วนประกอบอื่น ๆ ที่เหลือจะยังคงเหมือนเดิม เพราะไม่ได้ระบุไว้ในภาพด้านบน

ชอบ :

  1. บริการ
  2. เหตุการณ์ (กระจายสัญญาณ, ปล่อย, บน)
  3. บล็อกวิ่ง
  4. คงที่
  5. การตั้งค่า
  6. และอื่น ๆ อีกมากมาย

หวังว่าคำถามข้างต้นจะถูกต้อง หากเป็นเช่นนั้น โปรดให้แนวคิดเกี่ยวกับสิ่งที่ยังเหลืออยู่ เพื่อให้ฉันรู้สึกง่ายขึ้นในการเรียนรู้/ปรับตัวกับ Angular 2 ใหม่

ไทป์สคริปต์ :

ฉันเคยเห็นการเปลี่ยนแปลงในคลาสที่มุ่งเน้นบล็อกการเปลี่ยนแปลงใน TypeScript เช่น:

      class MyComponent {
          constructor() {
              this.name = 'Max'
          }
          sayMyName() {
              console.log('My name is', this.name)
          }
      }

นั่นหมายความว่าฟังก์ชันจัดการ DOM ที่ใช้กันทั่วไปเช่น

  1. document.getElementBy
  2. อ็อบเจ็กต์ window
  3. และสิ่งอื่นๆ ก็จะเป็นแบบเดียวกันในระดับหนึ่งหรือไม่?

กรุณาให้ข้อมูลอ้างอิงหรือแนวคิดเกี่ยวกับการเปลี่ยนแปลงของ 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