0Pricing
Angular Academy · บทเรียน

โหมดการห่อหุ้มมุมมอง

เปรียบเทียบ Emulated, None และ ShadowDom

โหมดการห่อหุ้มมุมมอง เป็นบทเรียน Angular Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Angular Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Angular Academy มีบทเรียนทั้งหมด 4 บทเรียน

การห่อหุ้มมุมมองคืออะไร

การห่อหุ้มมุมมองจะควบคุมวิธีแยกสไตล์ของคอมโพเนนต์ออกจากส่วนอื่นของหน้า Angular มีโหมดให้เลือกสามแบบผ่านพร็อพเพอร์ตี encapsulation

การตั้งค่าโหมด

ตั้งค่าโหมดด้วยอีนัม ViewEncapsulation ในมัณฑนา @Component

import { Component, ViewEncapsulation } from "@angular/core";

@Component({
  selector: "app-card",
  encapsulation: ViewEncapsulation.Emulated
})
export class CardComponent {}

Emulated (ค่าเริ่มต้น)

Emulated เป็นค่าเริ่มต้น Angular จำลองสไตล์ที่จำกัดขอบเขตโดยเพิ่มแอตทริบิวต์เฉพาะให้กับองค์ประกอบและตัวเลือก โดยไม่ใช้ Shadow DOM แบบเนทีฟ

@Component({
  encapsulation: ViewEncapsulation.Emulated
})

Emulated ทำงานอย่างไร

โหมด Emulated จะเขียนตัวเลือกใหม่ด้วยแอตทริบิวต์ที่สร้างขึ้น ทำให้การจำกัดขอบเขตทำงานได้ในเบราว์เซอร์ทุกชนิด โดยไม่ต้องพึ่งพาการรองรับ Shadow DOM

/* you write */
.title { color: blue; }

/* angular emits */
.title[_ngcontent-xyz] { color: blue; }

None

None จะปิดการห่อหุ้มทั้งหมด สไตล์ของคอมโพเนนต์จะกลายเป็นสไตล์ส่วนกลางและอาจส่งผลต่อองค์ประกอบใดก็ได้บนหน้า

@Component({
  encapsulation: ViewEncapsulation.None,
  styles: [".title { color: red; }"]
})
// .title now applies app-wide

เมื่อใดควรใช้ None

ใช้ None อย่างระมัดระวัง เช่น เมื่อต้องการกำหนดกฎธีมที่ใช้ร่วมกันจากคอมโพเนนต์หนึ่ง โปรดระวังว่าสไตล์อาจชนกันทั่วทั้งระบบ

ShadowDom

ShadowDom ใช้ Shadow DOM แบบเนทีฟของเบราว์เซอร์ เพื่อแยกมาร์กอัปและสไตล์ของคอมโพเนนต์ออกจากส่วนอื่นอย่างแท้จริง

@Component({
  selector: "app-widget",
  encapsulation: ViewEncapsulation.ShadowDom
})
export class WidgetComponent {}

ShadowDom แตกต่างอย่างไร

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

เปรียบเทียบการรั่วไหลของสไตล์

Emulated ป้องกันไม่ให้สไตล์รั่วไหลออกไป แต่สไตล์ส่วนกลางยังคงกำหนดเป้าหมายองค์ประกอบได้ None ไม่มีการแยกส่วน ส่วน ShadowDom จะปิดกั้นทั้งสองทิศทางอย่างสมบูรณ์

การเลือกโหมด

ใช้ Emulated ต่อไปสำหรับเกือบทุกกรณี ใช้ ShadowDom กับวิดเจ็ตที่ต้องแยกส่วนอย่างสมบูรณ์ และใช้ None เฉพาะเมื่อตั้งใจสร้างสไตล์ส่วนกลาง

การห่อหุ้มและสไตล์ส่วนกลาง

โปรดจำไว้ว่าสไตล์ส่วนกลาง styles.css จะมีผลเสมอไม่ว่าใช้โหมดใด ยกเว้นภายในคอมโพเนนต์ ShadowDom ซึ่งสไตล์ส่วนกลางจะเข้าไปไม่ถึง

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจของคุณเกี่ยวกับโหมดการห่อหุ้มมุมมอง

สรุปทบทวน

Angular มีโหมดการห่อหุ้มสามแบบ ได้แก่ Emulated (ค่าเริ่มต้นและจำลองการจำกัดขอบเขต), None (สไตล์ส่วนกลาง) และ ShadowDom (การแยกส่วนแบบเนทีฟ) Emulated เหมาะกับกรณีส่วนใหญ่ ส่วน ShadowDom ให้การแยกส่วนที่ดีที่สุด

คำถามที่พบบ่อย

บทเรียน “โหมดการห่อหุ้มมุมมอง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “โหมดการห่อหุ้มมุมมอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Angular Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Angular Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “โหมดการห่อหุ้มมุมมอง”

เปรียบเทียบ Emulated, None และ ShadowDom คุณปฏิบัติ Angular Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Angular Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Angular Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “โหมดการห่อหุ้มมุมมอง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Angular Academy นี้ได้ไหม

ได้ บทเรียน Angular Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สไตล์ที่จำกัดขอบเขตอยู่ในคอมโพเนนต์
  2. โหมดการห่อหุ้มมุมมอง
  3. การกำหนดสไตล์ Host และ Host-Context
  4. คลาสและสไตล์แบบไดนามิก
← กลับไปที่ Angular Academy