Shadow DOM是一種前端Web技術(shù),它使得開發(fā)者可以將一個組件的HTML、CSS和JavaScript封裝起來,以便于控制組件的樣式和行為。Vue也提供了對Shadow DOM的支持。在Vue 2.x中,可以通過使用slot和scoped slot來實現(xiàn)Shadow DOM,而在Vue 3.x中則新增了使用Shadow DOM的選項。
使用slot和scoped slot實現(xiàn)Shadow DOM的示例代碼如下:
// 父組件模板// 子組件模板// 使用子組件默認標題 自定義標題
組件內(nèi)容
在Vue 3.x中,可以使用createApp函數(shù)的第二個參數(shù)來啟用Shadow DOM:
// 創(chuàng)建App實例 const app = Vue.createApp({ data() { return { message: 'Hello Vue 3!' } }, template: `` }, { shadowRoot: true }) // 掛載App實例 app.mount('#app'){{ message }}
啟用Shadow DOM后,組件的HTML、CSS和JavaScript會被封裝到一個Shadow DOM中,從而避免了樣式和行為的沖突。同時,Shadow DOM也可以提高Web應(yīng)用的安全性,因為它可以防止外部CSS和JavaScript對組件造成影響。