การรวมเชิงมุมกับส่วนประกอบของเว็บ - แผนการทำงาน

ฉันสงสัยว่ามีแผนการทำงานที่เผยแพร่เมื่อใด/อย่างไร Angular (2.0+) กำลังวางแผนที่จะสนับสนุนส่วนประกอบของเว็บแบบเนทีฟอย่างเต็มที่ (https://www.webcomponents.org/)

ใช่ ฉันทราบว่ามี ViewEncapsulation.Native และ CUSTOM_ELEMENTS_SCHEMA แต่ฉันถามว่ามีแผนที่จะสนับสนุนส่วนประกอบของเว็บอย่างเต็มที่หรือไม่ ดังนั้นเราจึงสามารถใช้ไลบรารีที่ยอดเยี่ยมเช่น Google polymer (https://www.polymer-project.org/)

ฉันรู้ว่ามี vaadin lib (https://github.com/vaadin/angular2-polymer) ที่จัดการการรวมระบบ แต่อีกครั้ง: ฉันกำลังพูดถึงการสนับสนุนแบบ ดั้งเดิม


person Marc Borni    schedule 11.01.2017    source แหล่งที่มา


คำตอบ (1)


นั่นเป็นสิ่งที่สวยงามเกี่ยวกับส่วนประกอบของเว็บ หากเบราว์เซอร์รองรับแบบเนทิฟ เบราว์เซอร์จะทำงานแบบเนทีฟในทุกเฟรมเวิร์ก มันจะเหมือนกับการใช้แท็ก <input> ใน Angular เบราว์เซอร์แสดงผล ไม่ใช่เฟรมเวิร์ก

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

ตอนนี้ เมื่อพูดถึงไลบรารี่ส่วนประกอบของเว็บอย่าง Polymer นั่นเป็นเรื่องราวที่แตกต่างออกไป

Polymer 1.x ใช้ข้อมูลจำเพาะ v0 ขององค์ประกอบที่กำหนดเอง และอาศัยตรรกะที่กำหนดเองจำนวนมากเพื่อจัดการ DOM จนถึง Polymer.dom() มันเข้ากันไม่ได้กับ Angular หากไม่มีการสนับสนุนจากบุคคลที่สาม เนื่องจาก Angular ใช้วิธีการจัดการ DOM ดั้งเดิมแทนของ Polymer Angular จะไม่เคยรองรับ เนื่องจากข้อมูลจำเพาะ v0 ไม่ใช่สิ่งที่เบราว์เซอร์กำลังใช้งาน

Polymer 2.x ใช้ข้อกำหนดองค์ประกอบที่กำหนดเอง v1 ซึ่งเบราว์เซอร์กำลังใช้งาน (หรือได้ใช้งานแล้ว) มันทำงานเหมือนกับองค์ประกอบปกติ ดังนั้นจึงได้รับการสนับสนุนโดย Angular ตามธรรมชาติ

น้ำตาลส่วนเกินใดๆ ที่ห้องสมุดอย่างโพลีเมอร์มอบให้ เช่น การประทับเทมเพลตและการผูกข้อมูล อาจไม่ทำงานโดยธรรมชาติ

TL;DR;

Angular รองรับ webcomponents ตามข้อกำหนด v1

ไลบรารี (เช่น โพลีเมอร์) ที่สร้างจากส่วนประกอบของเว็บอาจมีฟีเจอร์ที่ใช้งานไม่ได้ใน Angular

หากคุณต้องการใช้ Polymer และ Angular ร่วมกัน ให้เน้นที่ Polymer 2.x ซึ่งใช้ข้อมูลจำเพาะ v1

person hotforfeature    schedule 28.04.2017