淺析Vue 3 任意傳送門——Teleport
阿新 • • 發佈:2021-10-15
Teleport
是什麼?它解決的是什麼問題?
一、使用場景 - 為什麼我們需要 Teleport
Teleport
是一種能夠將我們的模板移動到 DOM
中 Vue app
之外的其他位置的技術,就有點像哆啦A夢的“任意門”。
1、使用場景:
業務開發的過程中,我們經常會封裝一些常用的元件,例如 Modal 元件。相信大家在使用 Modal 元件的過程中,經常會遇到一個問題,那就是 Modal 的定位問題。
(1)像 modals
,toast
等這樣的元素,很多情況下,我們將它完全的和我們的 Vue
應用的 DOM
完全剝離,管理起來反而會方便容易很多。原因在於如果我們巢狀在 Vue
z-index
和樣式就會變得很困難。
(2)另外,像 modals
、toast
等這樣的元素需要使用到 Vue
元件的狀態(data
或者 props
)的值。
2、作用 - 這就是 Teleport
派上用場的地方:
我們可以在元件的邏輯位置寫模板程式碼,這意味著我們可以使用元件的 data
或 props
,然後在 Vue
應用的範圍之外渲染它。
Teleport 提供了一種乾淨的方法,允許我們控制在 DOM 中哪個父節點下呈現 HTML,而不必求助於全域性狀態或將其拆分為兩個元件。 -- Vue 官方文件